我正在使用 Dropwizard 和 JDBI 构建 REST API,我需要使用同一资源的不同表示。
我们正在使用events
资源的示例:
资源具有event
属性field1
、field2
和。field3
field4
- 通过执行
POST /events
请求正文创建新事件时,应包含所有属性。 - 当以普通用户的身份获取事件时,
GET /event/1
响应正文应仅包含field1
andfield2
。 - 当以超级用户的身份获取事件时,
GET /event/1
响应正文应包含field1
,field2
和field3
。
当涉及到资源 bean、jdbi 查询和资源映射器时,处理这个问题(#2 和 #3)的最佳(简单)方法是什么?
为每个表示分离 bean/mapper/query(不是很干燥,即使使用扩展的基本 bean)?在构建后过滤响应对象(不是很优雅,可能很脆弱,容易意外暴露太多数据)?