У меня есть служба dropwizard, которая принимает PUT документа JSON, представляющего компонент. Я использую ограничения аннотаций в реализации компоненты и использовать @Valid аннотаций в моем методе ресурсов:Dropwizard и проверка списков объектов
@PUT
public Response write(@Valid MyBean bean);
и все работает довольно хорошо.
Теперь, однако, я хочу передать массив объектов в JSON. Я просто изменил метод подписи
@PUT
public Response write(@Valid List<MyBean> beans);
и она обычно работает, но если есть ошибки проверки, то ответ не очень дружественным к пользователю. Например, если я отправляю в 100 бобов в массиве, и один из них отсутствует свойство «имя», то ответ
{"errors":["name may not be empty"]}
без указания который боб в запросе есть проблема.
Есть ли способ преодолеть это?
Если это не так, есть ли способ получить валидатор в классе ресурсов, чтобы я мог справиться со всем этим сам?
Спасибо - я просто в конечном итоге делает это сам (не знаю, почему я думал, что инъекция валидатора будет сложной) –
Интересно, будет ли это хорошим дополнением. хотя опять же, если ваше сообщение проверки зависит от другого свойства одного и того же компонента, как вы его проверяете? Вы получите проверку зависимостей до того места, где весь ваш bean-элемент является нулевым, в этот момент интерполятор сообщений будет NPE при проверке, который не будет действительно хорош. Я могу представить, что это была их мотивация, не делая этого. Кроме того: проверка Hibernate не поддерживает списки или массивы по умолчанию, поэтому это, возможно, никогда не было проблемой. DW взламывает это сами по себе :) – pandaadb