Mais
REST API - Use o "Aceitar: aplicação/json" HTTP Header
Quando eu faço um pedido, recebo uma resposta em XML, mas o que eu preciso é do JSON. No documento é indicado a fim de obter um JSON em troca: Utilize o cabeçalho HTTP Accept: application/json
.
Onde eu encontro o cabeçalho HTTP para colocar Accept: application/json
dentro?
O meu palpite é que não é suposto estar dentro do pedido de URL, o que parece:
http://localhost:8080/otp/routers/default/plan?fromPlace=52.5895,13.2836&toPlace=52.5461,13.3588&date=2017/04/04&time=12:00:00
26
3
Você adivinhou certo, os cabeçalhos HTTP não fazem parte do URL.
E quando você digitar um URL no navegador, o pedido será emitido com cabeçalhos padrão. De qualquer forma, REST Apis não devem ser consumidos ao digitar o endpoint na barra de endereço de um navegador.
O cenário mais comum é que o seu servidor consome um REST Api de terceiros.
Para isso, o seu código do lado do servidor forge uma solicitação GET (/PUT/POST/DELETE) apontando para uma determinada configuração de endpoint (URL) (quando necessário, como o seu caso) alguns cabeçalhos e finalmente (talvez) o envio de alguns dados (como normalmente ocorre em uma solicitação POST, por exemplo).
O código para forjar o pedido, enviá-lo e finalmente obter a resposta depende do idioma do seu servidor.
Se você quiser teste uma Api REST você pode utilizar
curl
a partir da linha de comando.O "Curl" faz uma requisição e dá a resposta ao stdout (a menos que instruído de outra forma).
No seu caso, o pedido de teste seria emitido desta forma:
A diretiva
H' ou
--header' define um cabeçalho e seu valor.Aqui'é um site útil para testar os seus cabeçalhos. Você pode ver os cabeçalhos do seu navegador e também usar cURL para refletir de volta os cabeçalhos que você enviar.
Por exemplo, você pode validar a negociação do conteúdo desta forma.
Este cabeçalho `Accept' prefere texto simples, portanto retorna nesse formato:-
Considerando que este prefere JSON e assim retorna nesse formato:-
Bem, Curl poderia ser uma opção melhor para a representação json, mas nesse caso seria difícil entender a estrutura do json porque está na linha de comando. Se você quiser colocar seu json no navegador, simplesmente remova todas as XML Annotações como -
da sua classe de modelo e do que executar a mesma url, você tem usado para a representação xml.
Certifique-se de que você tem dependência de jacson-databind no seu pom.xml