REST API-используйте HTTP-заголовок " Accept: application/json
когда я делаю запрос, я получаю ответ в XML, но мне нужен JSON. В doc указано, чтобы получить JSON взамен: используйте Accept: application/json
заголовок HTTP.
где я могу найти заголовок HTTP для размещения Accept: application/json
внутри?
Я предполагаю, что это не должно быть внутри URL-запроса, который выглядит так:
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
2 ответов
вы угадали, заголовки HTTP не являются частью URL-адреса.
и при вводе URL-адреса в браузере запрос будет выдан со стандартными заголовками. В любом случае REST API не предназначены для использования при вводе конечной точки в адресной строке браузера.
наиболее распространенным сценарием является то, что ваш сервер использует сторонний REST Api.
для этого ваш серверный код Форж правильный запрос GET (/PUT / POST / DELETE), указывающий на заданная настройка конечной точки (URL) (при необходимости, как и в вашем случае) некоторые заголовки и, наконец, (возможно) отправка некоторых данных (как обычно происходит в запросе POST, например).
код, чтобы подделать запрос, отправить его и, наконец, получить ответ обратно, зависит от вашего языка на стороне сервера.
если вы хотите тест Api REST вы можете использовать curl
инструмент из командной строки.
curl
делает запрос и выводит ответ на stdout (если не указано иное).
в вашем случае тестовый запрос будет выдан следующим образом:
$curl -H "Accept: application/json" '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'
на H
или --header
директива устанавливает заголовок и его значение.
Well Curl может быть лучшим вариантом для представления json, но в этом случае было бы трудно понять структуру json, потому что ее в командной строке. если вы хотите получить свой json в браузере, вы просто удалите все XML-аннотаций, как -
@XmlRootElement(name="person")
@XmlAccessorType(XmlAccessType.NONE)
@XmlAttribute
@XmlElement
из вашего класса модели и чем запустить тот же url, который вы использовали для представления xml.
убедитесь, что у вас есть зависимость jacson-databind в вашем pom.в XML
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.1</version>
</dependency>