Si prefiere una Lista de objetos, una forma de hacerlo es así:
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;
}
Y úsalo así:
List<SomeObject> list = someService.getApi("http://localhost:8080/some/api",HttpMethod.GET);
La explicación de lo anterior se puede encontrar aquí ( https://www.baeldung.com/spring-rest-template-list ) y se parafrasea a continuación.
"Hay un par de cosas que suceden en el código anterior. Primero, usamos ResponseEntity como nuestro tipo de retorno, usándolo para ajustar la lista de objetos que realmente queremos. Segundo, estamos llamando a RestTemplate.exchange () en lugar de getForObject () .
Esta es la forma más genérica de usar RestTemplate. Requiere que especifiquemos el método HTTP, el cuerpo de solicitud opcional y un tipo de respuesta. En este caso, utilizamos una subclase anónima de ParameterizedTypeReference para el tipo de respuesta.
Esta última parte es lo que nos permite convertir la respuesta JSON en una lista de objetos que son del tipo apropiado. Cuando creamos una subclase anónima de ParameterizedTypeReference, utiliza la reflexión para capturar información sobre el tipo de clase al que queremos convertir nuestra respuesta.
Conserva esta información utilizando el objeto Type de Java, y ya no tenemos que preocuparnos por el borrado de tipo ".