2
respostas

Enviar List<BigDecimal> com RestTemplate (Spring)

Olá.

Gostaria de saber se existe um jeito "recomendado" de se enviar listas através do Rest Template. Por exemplo, tenho o seguinte código

RestTemplate rt = new RestTemplate();
List<BigDecimal> idsParaSeremAlteradosNoBancoDeDados(Vamos supor que está lista ja está preenchida);
String url = "http://..."(Vamos supor que a url também está correta).
try{
rt.put(url, idsParaSeremAlteradosNoBancoDeDados)
}catch(){
}

Esse código não funciona...Alguém sabe porquê ? Além disso, qual o jeito recomendado de se enviar listas através do RestTemplate.

Grato, César

2 respostas

Oi César, tudo bem?

Eu geralmente faço assim:

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
List<Cliente> clienteList = new ArrayList<Cliente>();
HttpEntity<Object> requestEntity = new HttpEntity<Object>(clienteList,headers);
ResponseEntity<List<Cliente>> response= restTemplate.exchange(url, HttpMethod.POST, requestEntity,new ParameterizedTypeReference<List<Cliente>>() {});

Espero ter ajudado,

Abraço!

E ae Otávio ! Obg pela resposta. Atualmente estou fazendo dessa maneira:

RestTemplate restTemplate = new RestTemplate();
 String s = lista.toString();
 s = s.substring(1, s.indexOf("]"));
 Map<String, String> map = new HashMap<>();
map.put("timesheetsList", s);
 restTemplate.put(url, null, map);

Basicamente, eu pego minha lista transformo ela em uma String que fica no seguinte formato:

"[elemento 1, elemento 2, ... , elemento n]"

Então eu retiro os colchetes e coloco dentro de um mapa de Strings. Essa minha maneira é "aceitável" ?

Grato.