Если вы предпочитаете список объектов, один из способов сделать это так:
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;
}
И используйте это так:
List<SomeObject> list = someService.getApi("http://localhost:8080/some/api",HttpMethod.GET);
Объяснение вышесказанного можно найти здесь ( https://www.baeldung.com/spring-rest-template-list ) и перефразировано ниже.
«В приведенном выше коде происходит несколько вещей. Во-первых, мы используем ResponseEntity в качестве возвращаемого типа, используя его для переноса списка объектов, которые нам действительно нужны. Во-вторых, мы вызываем RestTemplate.exchange () вместо getForObject (). ,
Это наиболее общий способ использования RestTemplate. Требуется указать метод HTTP, необязательное тело запроса и тип ответа. В этом случае мы используем анонимный подкласс ParameterizedTypeReference для типа ответа.
Эта последняя часть - это то, что позволяет нам преобразовать ответ JSON в список объектов соответствующего типа. Когда мы создаем анонимный подкласс ParameterizedTypeReference, он использует отражение для сбора информации о типе класса, в который мы хотим преобразовать наш ответ.
Он сохраняет эту информацию с помощью Java-объекта Type, и нам больше не нужно беспокоиться об удалении типов ».