Как обработать большой ответ от внешнего API в приложении Spring Boot - PullRequest
1 голос
/ 03 июля 2019

В нашем весеннем загрузочном приложении мы по какой-то причине вызываем внешний API, он возвращает около 20 МБ данных JSON в качестве ответа.После получения ответа с помощью ObjectMapper мы сопоставляем ответ с POJO.

Мы используем RestTemplate для вызова API и получения ответа.

Каковы оптимальные методы для обработки большого ответаданные без проблем с памятью в загрузочном приложении Spring?

Спасибо

1 Ответ

0 голосов
/ 03 июля 2019

Я бы сказал, что есть два хороших подхода:

  • Избегайте API, которые возвращают так много информации. Лично я считаю, что конечные точки REST должны следовать тем же правилам, которые мы используем для нашего кода, например, «принцип единой ответственности» или «разделение интересов». Пример: вместо того, чтобы иметь API, который возвращает «полный каталог» (со всеми деталями для всех записей каталога), есть два API: один для получения только идентификаторов / имен всех записей в каталоге, и один, который возвращает все детали одной (или более) записей.
  • Или, как указано в комментарии пользователя Antoniossss : посмотрите, сможете ли вы избежать использования "полных" ответов, но вместо этого используйте какое-либо потоковое решение.

Но, сказав, что: когда вы действительно хотите вернуть все эти данные одним вызовом, вы не можете сделать слишком много. Вы могли бы подумать о том, чтобы не использовать сопоставление объектов для полного ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...