Возврат списка, возвращенного ResponseEntity
мой клиент REST использует RestTemplate для получения списка объектов.
ResponseEntitiy<List> res = restTemplate.postForEntity(getUrl(), myDTO, List.class);
теперь я хочу использовать возвращенный список и вернуть его как список вызывающему классу. В случае string можно использовать toString, но как работает для списков?
2 ответов
во-первых, если вы знаете тип элемента в списке, вы можете использовать ParameterizedTypeReference
класс вот так.
ResponseEntity<List<MyObj>> res = restTemplate.postForEntity(getUrl(), myDTO, new ParameterizedTypeReference<List<MyObj>>() {});
тогда, если вы просто хотите вернуть список, вы можете сделать:
return res.getBody();
и если все, что вам нужно, это список, вы можете просто сделать:
// postForEntity returns a ResponseEntity, postForObject returns the body directly.
return restTemplate.postForObject(getUrl(), myDTO, new ParameterizedTypeReference<List<MyObj>>() {});
Я не мог получить принятый ответ на работу. Кажется postForEntity
больше не имеет этой сигнатуры метода. Мне пришлось использовать restTemplate.exchange()
вместо:
ResponseEntity<List<MyObj>> res = restTemplate.exchange(getUrl(), HttpMethod.POST, myDTO, new ParameterizedTypeReference<List<MyObj>>() {});
затем вернуть список, как выше:
return res.getBody();