Si vous préférez une liste d'objets, une façon de le faire est la suivante:
public <T> List<T> getApi(final String path, final HttpMethod method) {
final RestTemplate restTemplate = new RestTemplate();
final ResponseEntity<List<T>> response = restTemplate.exchange(
path,
method,
null,
new ParameterizedTypeReference<List<T>>(){});
List<T> list = response.getBody();
return list;
}
Et utilisez-le comme ceci:
List<SomeObject> list = someService.getApi("http://localhost:8080/some/api",HttpMethod.GET);
Des explications sur ce qui précède peuvent être trouvées ici ( https://www.baeldung.com/spring-rest-template-list ) et sont paraphrasées ci-dessous.
"Il y a quelques choses qui se passent dans le code ci-dessus. Premièrement, nous utilisons ResponseEntity comme type de retour, en l'utilisant pour envelopper la liste des objets que nous voulons vraiment. Deuxièmement, nous appelons RestTemplate.exchange () au lieu de getForObject () .
Il s'agit de la manière la plus générique d'utiliser RestTemplate. Il nous oblige à spécifier la méthode HTTP, le corps de requête facultatif et un type de réponse. Dans ce cas, nous utilisons une sous-classe anonyme de ParameterizedTypeReference pour le type de réponse.
Cette dernière partie est ce qui nous permet de convertir la réponse JSON en une liste d'objets de type approprié. Lorsque nous créons une sous-classe anonyme de ParameterizedTypeReference, elle utilise la réflexion pour capturer des informations sur le type de classe dans lequel nous voulons convertir notre réponse.
Il conserve ces informations à l'aide de l'objet Type de Java, et nous n'avons plus à nous soucier de l'effacement des types. "