Мы создали некоторые веб-службы REST (jax-rs), используя Apache CXF. Они возвращают ответ JSON.
Теперь мне нужно изменить некоторые параметры запроса и содержимое ответа. (В основном нам нужно кодировать/шифровать некоторые данные, которые возвращаются службой, и декодировать/дешифровать одни и те же данные, когда они используются в качестве параметра при последующем вызове службы.)
Кажется, у меня есть как минимум 4 варианта:
- Использовать фильтр сервлета
- Использовать перехватчик CXF
- Использовать фильтр JAX-RS
- Не используйте какой-либо конкретный шаблон и выполняйте кодирование/декодирование в рамках фактической логики службы.
Я использовал сервлет-фильтры раньше и точно понимаю, как изменить параметры запроса и тело ответа, поэтому я склоняюсь к этому. Однако я открыт для использования CXF Interceptor или JAX-RS-фильтра, если это более "правильный" способ решить эту проблему при использовании CXF. Но, основываясь на документации, я действительно не понимаю, как это сделать. Например, я использую метод setContent объекта Message для изменения ответа JSON? Что такое параметр формата в этом случае, просто String.class?