Я создаю REST API с Dropwizard и JDBI, и мне нужно работать с различными представлениями одного и того же ресурса.Ограничить объект ответа Dropwizard на основе разрешений
Пример, в котором мы работаем с events
ресурса:
event
ресурс обладает свойствами field1
, field2
, field3
и field4
.
- При создании нового события путем выполнения
POST /events
тело запроса должно содержать все свойства. - При получении события
GET /event/1
в качестве обычного пользователя тело ответа должно содержать толькоfield1
иfield2
. - При получении события
GET /event/1
в качестве суперпользователя тело ответа должно содержатьfield1
,field2
иfield3
.
Каков наилучший (простой) способ борьбы с этим (№ 2 и № 3), когда дело доходит до ресурса bean, запроса jdbi и ресурса mapper?
Отдельный bean/mapper/query для каждого представления (не очень DRY, даже с базовым компонентом, который расширен)? Фильтрация объекта ответа после его создания (не очень элегантный и, возможно, хрупкий, легко случайно выставлять слишком много данных)?