web-dev-qa-db-fra.com

RestTemplate vs Apache Http Client pour le code de production dans le projet Spring

nous avons un projet Spring qui est sur le point d'être mis en production. Actuellement, le projet utilise Apache Http Client. On pense utiliser RestTemplate comme HttpClient.

Je fouille pour voir tout avantage notable d'utiliser RestTemplate par rapport à Apache's. De plus, il serait intéressant de savoir ce que le transport HTTP fait RestTemplate dans son implémentation. Apache Http Client est utilisé par plusieurs groupes depuis de nombreuses années et jouit d'une bonne réputation.

risquerions-nous de passer à RestTemplate?

De plus, cela blog indique que RestTemplate doit être configuré pour la production, bien que la configuration soit minimale.

Merci

31
brain storm

RestTemplate et HttpClient ne fonctionnent pas au même niveau d'abstraction.

HttpClient est une bibliothèque à usage général pour communiquer en utilisant HTTP, tandis que RestTemplate est une abstraction de niveau supérieur, traitant de la transformation JSON/XML d'entités, etc.

RestTemplate délègue à un ClientHttpRequestFactory , et l'une des implémentations de cette interface utilise HttpClient d'Apache.

Ainsi, si l'objectif est de communiquer avec une API Restful et que vous souhaitez toujours utiliser HttpClient, vous pouvez utiliser RestTemplate sur HttpClient.

Notez que ce que je viens de dire est exactement ce que le blog auquel vous avez lié explique:

Ainsi, la solution consiste à utiliser l'org.springframework.http.client.HttpComponentsClientHttpRequestFactory, qui est un ClientHttpRequestFactory déléguant la création des demandes à un HttpClient.

58
JB Nizet