#java #json
#java #json
Вопрос:
Можно ли игнорировать ответ JSON, когда сервер ответов отправляет результат?
Я имею в виду, что сервер ответов (A) отправляет объект данных ответа, подобный {"A" : 'SOME_DATA'}
.
И оно изменилось {"A" : 'SOME_DATA', "B" : 'SOME_DATA_2'}
, и если сервер запросов (B) не обновляет объект данных, тогда возникает «нераспознанная ошибка JSON».
Итак, я хочу этот объект make, но, если сервер B не может распознать, я не отправляю «B».
Это может быть возможной настройкой на сервере A? или это должно быть установлено на сервере B, как аннотация @JsonIgnoreProperties(ignoreUnknown = true)
?
Комментарии:
1. Если вы позволите «серверу B» (я думаю, вы имеете в виду «клиент B») отправить заголовок вместе с запросом, который содержит номер версии ответа, который он может принять, то «сервер A» может выбирать между несколькими различными ответами в зависимости от версии, указанной B. Но, вероятно, будет проще, если вы заранее сообщите своим клиентам игнорировать неизвестные поля.
2. спасибо за совет. чем вы имеете в виду, что «сервер A» не может обработать свойство ответа на собственном сервере? нравится @jsonignore? нет способа обработать это на стороне сервера (имеется в виду сервер A).
Ответ №1:
Лучший способ, когда вы хотите внести обновление в свой API, — создать новую конечную точку для вашей новой версии. Что-то вроде этого :
api / v1 / my / awesome / конечнаяточка
api / v2 / my / awesome / endpoint
Для игнорирования части ответа JSON вы действительно можете установить на клиенте DTO
@JsonIgnoreProperties(ignoreUnknown = true)