Back to questions
Senior
4
Какие параметры конфигурации передаём в HTTP-клиент (RestTemplate/WebClient/Feign) для вызова стороннего сервиса?
Companies where asked
МВидео/эльдорадо
Answer from AI
sobes.tech AI
При вызове стороннего сервиса через HTTP-клиенты (RestTemplate, WebClient, Feign) обычно настраивают следующие параметры:
- URL и путь запроса — адрес вызываемого сервиса.
- HTTP метод — GET, POST, PUT, DELETE и т.д.
- Заголовки (Headers) — например,
Authorizationдля токенов,Content-Type,Accept. - Тело запроса (Body) — для POST/PUT запросов, сериализованное в JSON, XML и т.п.
- Параметры запроса (Query Params) — для GET запросов.
- Таймауты — время ожидания подключения и ответа, чтобы избежать зависаний.
- Обработка ошибок и повторные попытки (retry) — политика на случай сбоев.
- Кодировка и сериализация/десериализация — настройка форматов данных.
Пример настройки RestTemplate с таймаутами и заголовками:
HttpHeaders headers = new HttpHeaders();
headers.set("Authorization", "Bearer token");
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> entity = new HttpEntity<>(jsonBody, headers);
RestTemplate restTemplate = new RestTemplate();
restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory() {{
setConnectTimeout(5000);
setReadTimeout(5000);
}});
ResponseEntity<String> response = restTemplate.exchange(
"https://api.example.com/resource",
HttpMethod.POST,
entity,
String.class
);
Для WebClient и Feign аналогично настраиваются таймауты, заголовки и сериализация.