RestTemplate vs Apache Http Client для производственного кода в проекте spring

у нас есть проект Spring, который вот-вот вступит в производство. В настоящее время проект использует Apache Http Client. Существует мысль об использовании RestTemplate как HttpClient.

Я копаюсь, чтобы увидеть какое-нибудь заметное преимущество использования RestTemplate над Apache's. Кроме того, было бы интересно узнать, что HTTP-транспорт делает RestTemplate в его реализации. Apache Http Client используется несколькими группами в течение многих лет и имеет хорошую репутацию.

мы рискуем перейти на RestTemplate?

Кроме того, этот blog указывает, что RestTemplate необходимо настроить для производства, хотя конфигурация минимальна.

Спасибо

Ответы

Ответ 1

RestTemplate и HttpClient не работают с одинаковым уровнем абстракции.

HttpClient - это библиотека общего назначения для связи с использованием HTTP, тогда как RestTemplate представляет собой абстракцию более высокого уровня, связанную с преобразованием JSON/XML сущностей и т.д.

RestTemplate делегирует ClientHttpRequestFactory и одну из реализаций этого интерфейса использует Apache HttpClient.

Итак, если целью является общение с Restful API, и вы все еще хотите использовать HttpClient, вы можете использовать RestTemplate через HttpClient.

Обратите внимание, что то, что я только что сказал, именно то, с чем связан ваш блог:

Итак, решение заключается в использовании org.springframework.http.client.HttpComponentsClientHttpRequestFactory, который является ClientHttpRequestFactory, делегирующим создание запросов к HttpClient.