freeCodeCamp/curriculum/challenges/russian/05-apis-and-microservices/basic-node-and-express/serve-json-on-a-specific-ro...

3.6 KiB
Raw Blame History

id title localeTitle challengeType
587d7fb1367417b2b2512bf1 Serve JSON on a Specific Route Служить JSON по определенному маршруту 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

tests:
  - text: 'Конечная точка <code>/json</code> должна обслуживать объект json <code>{"message": "Hello json"}</code> '
    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

// solution required