Я бы хотел регистрировать тела сущностей запросов JSON для всех запросов POST ко всем ресурсам в Dropwizard Моем приложении. Суть в том, что мне нужно разрешить тип запроса, сделать копию сущности и выполнить некоторое произвольное форматирование поля запроса до того, как сущность будет зарегистрирована. Я также не могу изменить Класс запроса или Класс Поля в любом случае (даже с Аннотациями).
Как использовать логику, которую Джерси и Джексон используют для разрешения типа класса Java POJO перед передачей запроса в Ресурс?
Должен ли я использовать Фильтры , Перехватчики или EventListener реализации?
// I need to create raw JSON for instances of this class where fields
// of type Location get specially formatted but only for logging.
// i.e doesn't affect normal structure of the request
class CustomRequest {
// In the raw JSON i create this field's name should be converted
// to 'origin_geo' and its value should be a float with the first
// value being the longitude and the second element being the
// latitude.
public Location origin;
public String otherField;
}
interface Location {
float getLongitude();
float getLatitude();
}
Чтобы другие приложения могли использовать промежуточное ПО, я хочу избежать необходимости создавать специальный код для каждого отдельного типа запроса. Я хочу что-то общее, способное распознавать поля типа Location для любой сущности и просто сериализовать сущность, но с модификацией этих полей типа Location.
Кто-нибудь знает правильный способ сделать это с игровыми фреймворками? Я полагаю, что Джерси может использовать рефлексию для разрешения типа, когда метод ресурса разрешается, просматривая параметры метода и выбирая первый параметр, который удовлетворяет некоторому набору условий. Я хотел бы избежать повторной реализации этого.