Wenn Sie eine Liste von Objekten bevorzugen, können Sie dies folgendermaßen tun:
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;
}
Und benutze es so:
List<SomeObject> list = someService.getApi("http://localhost:8080/some/api",HttpMethod.GET);
Erklärungen zu den oben genannten Themen finden Sie hier ( https://www.baeldung.com/spring-rest-template-list ) und werden im Folgenden umschrieben.
"Im obigen Code passieren einige Dinge. Erstens verwenden wir ResponseEntity als Rückgabetyp, um die Liste der Objekte zu umbrechen, die wir wirklich wollen. Zweitens rufen wir RestTemplate.exchange () anstelle von getForObject () auf. .
Dies ist die allgemeinste Methode zur Verwendung von RestTemplate. Dazu müssen wir die HTTP-Methode, den optionalen Anforderungshauptteil und einen Antworttyp angeben. In diesem Fall verwenden wir eine anonyme Unterklasse von ParameterizedTypeReference für den Antworttyp.
Dieser letzte Teil ermöglicht es uns, die JSON-Antwort in eine Liste von Objekten des entsprechenden Typs zu konvertieren. Wenn wir eine anonyme Unterklasse von ParameterizedTypeReference erstellen, werden mithilfe der Reflektion Informationen zum Klassentyp erfasst, in den unsere Antwort konvertiert werden soll.
Diese Informationen werden mithilfe des Type-Objekts von Java beibehalten, und wir müssen uns nicht mehr um das Löschen von Typen kümmern. "