Вы действительно имеете в виду проверку участников ресурса?Обычно члены ресурса вводятся тем или иным способом (это либо контексты, либо сущности, либо параметры пути / запроса / матрицы), до тех пор, пока работает инфраструктура JAX-RS, вы будете правильно вводить эти члены.
Лично я думаю, что имеет больше смысла проверять сущность, так как она прибыла по проводу, заполненная MessageBodyReader, и в основном вы не знаете, что внутри, верно?
Так что, если вы решитеДля проверки сущностей существует несколько подходов:
AFAIK, Apache Wink не поддерживает встроенные проверки.Вы можете реализовать обработчик.Смотри DeploymentConfiguration.initRequestHandlersChain()
.Он поддерживает добавление пользовательских обработчиков.В вашем обработчике вы можете выполнять любые проверки.Я даже думаю, что сообщество Wink будет радо, если вы предоставите этот код.
Единственная проблема с этим подходом - это связано с Apache Wink.Это не сработает, если вы решите перейти на другую инфраструктуру JAX-RS.
Другой подход заключается в том, чтобы выполнить эту проверку самостоятельно MessageBodyReader
.Все, что вам нужно сделать, это зарегистрировать специальный читатель для ваших сущностей и проверить сущность внутри.Вы по-прежнему можете воспользоваться преимуществами стандартных MessageBodyReaders (например, JAXB или Jackson), используя @Context Providers.getMessageBodyReader()
.Хорошая часть этого подхода в том, что это стандарт JAX-RS.Плохо, что вы используете MessageBodyReaders для чего-то, для чего они не были предназначены.
Самый простой подход состоит в проверке сущности в первой строке каждого метода ресурса.Это создаст некоторое дублирование кода, но иногда выигрывает простота.