мой веб-сервис с пружинным загрузчиком (A), использующий другой API из веб-службы (B). Ниже приведен вызов.
List<ApiTarget> outboundApis = restClientUtil.getList(apiServerEndPoint, OpenApiTarget.class, rsqlFilter);
, но недавно веб-служба (B) внесла изменения, добавив в ответ еще несколько полей / свойств. Я начал получать сообщение об ошибке:
"com.faster xml .jackson.databind.ex c .UnrecognizedPropertyException: нераспознанное поле \" apiConsumer \ "(класс xxx.ApiTarget), не помеченное как игнорируемое
Итак, я решил не использовать модель ApiTarget, вместо этого мы отправляем запрос, как показано ниже, с запросом ответа в Object.class.
List<ApiTarget> outboundApis = restClientUtil.getList(apiServerEndPoint, Object.class, rsqlFilter);
, поскольку я использую genaralised resttemplate и objectMapper, я не хочу предоставлять objectMapper.disable (DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); для преобразования ответа в модель
, а также я не могу аннотировать @JsonIgnoreProperties, потому что здесь проблема с новыми свойствами из ответа.
поэтому мой вопрос, есть ли подход, при котором мне не нужно вносить изменения в мою модель (ApiTarget, возможно, добавляя новые реквизиты), если сервис-потребитель вносит изменения в ответы, но все еще продолжает использовать модель.
и в этом случае мы должны go для модели, подобной (ApiTarget), вместо напрямую используя ответ json.