Якщо ви віддаєте перевагу списку об’єктів, один із способів зробити це такий:
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, він використовує відображення для збору інформації про тип класу, в який ми хочемо перетворити свою відповідь.
Він утримує цю інформацію за допомогою об’єкта Type Java, і нам більше не потрібно турбуватися про стирання типу ".