--- id: 587d7fb1367417b2b2512bf1 title: Serve JSON on a Specific Route localeTitle: Служить JSON по определенному маршруту challengeType: 2 --- ## 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
## Tests
```yml tests: - text: 'Конечная точка /json должна обслуживать объект json {"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); })' ```
## Challenge Seed
## Solution
```js // solution required ```