Я реализую REST API, используя Spring Boot и @RestController
с Java 8. Один из методов контроллера должен вызывать другую стороннюю службу REST API. Метод описан следующим образом (формат данных — JSON):
- Вызовите сторонний метод API, чтобы получить список кандидатов (каждый кандидат представлен в виде объекта с некоторой базовой информацией).
- Для каждого кандидата вызовите другой сторонний метод API, чтобы получить более подробную информацию о кандидате.
- Смешайте результаты, существенно обогащая все объекты-кандидаты из первого вызова.
- Вернуть список расширенных объектов-кандидатов.
Я планировал использовать @RestTemplate
для всех вызовов стороннего API. Что меня беспокоит, так это то, что для большого количества кандидатов (скажем, 500-1000) это станет огромным узким местом в производительности, если оно будет реализовано блокирующим образом. Я не совсем уверен, какой подход рекомендуется для достижения наилучшей производительности. Как я могу масштабировать это, чтобы несколько пользователей могли одновременно получать доступ к моему API?