Como usar o parâmetro de consulta representado como JSON com Spring RestTemplate?
Preciso fazer uma solicitação para um ponto de extremidade HTTP com um parâmetro de consulta representado como JSON usando o Spring RestTemplate.
restTemplate.getForObject(
apiRoot + "/path" + "?object={myObject}",
Response.class,
new MyObject())
Aqui eu precisoMyObject
para ser convertido em JSON (e codificado em URL obviamente). MasRestTemplate
apenas converte paraString
comtoString
ligue em vez disso.MyObject
é conversível em JSON por Jackson.UriComponentsBuilder
se comporta da mesma maneira:
UriComponentsBuilder.fromHttpUrl(apiRoot)
.path("/path")
.queryParam("object", new MyObject()))
.queryParam("access_token", accessToken)
.toUri()
Existe uma maneira de evitar ligar paraObjectMapper.writeValueAsString
pelas mãos?
Atualização: para esclarecer, no resultado eu preciso ter?object={"key":42}
no meu URI (ou no formato codificado por URL?object=%7B%22key%22%3A42%7D
) dadoMyObject
tem uma propriedadekey
com valor igual a42
.