вопрос, связанный с совместимостью вызовов REST - PullRequest
0 голосов
/ 29 октября 2019

У меня есть вопрос, связанный с совместимостью вызовов REST ... скажем, у меня есть приложение-1, которое понимает некоторый JSON, который отображается на объект типа 1, и связывается с обновленным приложением, которое отправляет ответ JSON объекта типа-1но с добавленным полем, почему я получаю исключение при преобразовании JSON в объект приложения-1, отправленный приложением-2? Разве мы не должны отказываться от свойств, которые мы не понимаем? Я использую Config.getInstance (). GetMapper (). ConvertValue (body, MyClass.class) для преобразования JSON в объект.

1 Ответ

0 голосов
/ 29 октября 2019

Когда вы используете POJO для моделирования поставщика и потребителя REST API, это означает, что вам необходимо обновить обе стороны одновременно, когда структура данных изменяется.

Однако, если вы просто используете Map или List для моделирования интерфейса, у вас гораздо больше гибкости в плане развития сервиса.

Я написал статью об этой теме несколько лет назад и надеюсь, что это поможет. https://www.networknt.com/design/evolution/

При использовании Jackson ObjectMapper существуют опции, позволяющие игнорировать некоторые поля в полезной нагрузке. Это может избежать некоторых проблем, но не всех. Это одна из проблем REST по сравнению с GraphQL, RPC и т. Д.

...