Nếu bạn muốn một Danh sách các Đối tượng, một cách để làm điều đó là như sau:
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;
}
Và sử dụng nó như vậy:
List<SomeObject> list = someService.getApi("http://localhost:8080/some/api",HttpMethod.GET);
Giải thích cho những điều trên có thể được tìm thấy ở đây ( https://www.baeldung.com/spring-rest-template-list ) và được diễn giải dưới đây.
"Có một vài điều xảy ra trong đoạn mã ở trên. Đầu tiên, chúng tôi sử dụng FeedbackEntity làm kiểu trả về của chúng tôi, sử dụng nó để bọc danh sách các đối tượng chúng tôi thực sự muốn. Thứ hai, chúng tôi đang gọi RestTemplate.exchange () thay vì getForObject () .
Đây là cách chung nhất để sử dụng RestTemplate. Nó yêu cầu chúng tôi chỉ định phương thức HTTP, thân yêu cầu tùy chọn và loại phản hồi. Trong trường hợp này, chúng tôi sử dụng một lớp con ẩn danh của ParameterizedTypeReference cho loại phản hồi.
Phần cuối cùng này là những gì cho phép chúng ta chuyển đổi phản hồi JSON thành một danh sách các đối tượng là loại thích hợp. Khi chúng ta tạo một lớp con ẩn danh của ParameterizedTypeReference, nó sử dụng sự phản chiếu để nắm bắt thông tin về loại lớp mà chúng ta muốn chuyển đổi phản hồi của mình sang.
Nó giữ thông tin này bằng cách sử dụng đối tượng Type của Java và chúng tôi không còn phải lo lắng về việc xóa kiểu. "