--- id: 587d7fb1367417b2b2512bf1 title: Serve JSON on a Specific Route challengeType: 2 forumTopicId: 301517 localeTitle: Служить JSON по определенному маршруту --- ## Description
Пока сервер HTML обслуживает (как вы уже догадались!) HTML, API обслуживает данные. API REST (REpresentational State Transfer) позволяет осуществлять простой обмен данными без необходимости для клиентов знать какие-либо подробности о сервере. Клиенту нужно только знать, где находится ресурс (URL) и какое действие он хочет с ним выполнить (глагол). Глагол GET используется, когда вы извлекаете некоторую информацию, ничего не изменяя. В наши дни предпочтительным форматом данных для перемещения информации по сети является JSON. Проще говоря, JSON - это удобный способ представления объекта JavaScript в виде строки, чтобы его можно было легко передавать. Давайте создадим простой API, создав маршрут, который отвечает JSON по пути /json . Вы можете сделать это, как обычно, с помощью app.get() . Внутри обработчика маршрута используйте метод res.json() , передавая объект в качестве аргумента. Этот метод закрывает цикл запрос-ответ, возвращая данные. За кулисами он преобразует действительный объект JavaScript в строку, затем устанавливает соответствующие заголовки, чтобы сообщить браузеру, что вы обслуживаете JSON, и отправляет данные обратно. Допустимый объект имеет обычную структуру {key: data} . Данные могут содержать число, строку, вложенный объект или массив. Данные также могут быть переменной или результатом вызова функции; в этом случае он будет оценен перед преобразованием в строку. Подайте объект {"message": "Hello json"} как ответ в формате JSON на запросы GET к маршруту /json . Затем укажите ваш браузер на ваш-app-url / json, вы должны увидеть сообщение на экране.
## Instructions
Serve the object {"message": "Hello json"} as a response, in JSON format, to GET requests to the /json route. Then point your browser to your-app-url/json, you should see the message on the screen.
## Tests
```yml tests: - text: 'The endpoint /json should serve the json object {"message": "Hello json"}' testString: getUserInput => $.get(getUserInput('url') + '/json').then(data => { assert.equal(data.message, 'Hello json', 'The \'/json\' endpoint does not serve the right data'); }, xhr => { throw new Error(xhr.responseText); }) ```