REпрезентационнаяпередача данных T (REST) – это архитектурный стиль, который определяет набор ограничений, используемых для создания веб-службы. REST API — это простой и гибкий способ доступа к веб-службе без какой-либо обработки.

Как именно работает REST API?

Запрос отправляется от клиента на сервер в виде веб-URL-адреса в виде HTTP-запроса GET, POST, PUT или DELETE. Затем ответ возвращается с сервера в виде ресурса, который может быть HTML, XML, изображением или JSON. Но обычно JSON является наиболее часто используемым форматом в веб-сервисах.

Теперь давайте создадим простой сервер REST API с помощью Node JS.

Установка узла JS

Сначала установите Node JS в свою систему отсюда для windows. Системы на базе Linux могут следовать инструкциям с этого сайта, чтобы загрузить пакет.

Настройка проекта

Откройте свой терминал или Git Bash и создайте папку в любом месте, где вы хотите настроить проект.

Затем войдите в каталог и откройте там код Visual Studio.

Давайте откроем терминал внутри VS Code, выбрав Терминал › Новый терминал.

Теперь введите следующую команду, чтобы инициализировать проект узла в этом каталоге.

npm init -y

В этом каталоге будет создан новый файл package.json, содержащий всю необходимую информацию о проекте.

Мы должны установить пару зависимостей, чтобы сделать это путешествие гладким. Во-первых, мы должны установить Express, так как он облегчает быструю разработку веб-приложений на основе Node и очень прост в использовании. Другой — nodemon, который помогает обновлять сервер без необходимости останавливать и запускать сервер узлов вручную. Установите их по

npm install nodemon express

Папка Node Modules и файл package-lock.json будут созданы после этого шага.

Добавьте следующую строку под сценариями в файл package.json.

"dev":"nodemon index.js",

Этот шаг гарантирует использование nodemon всякий раз, когда мы нажимаем следующую команду:

npm run dev

Теперь, когда мы настроили среду и необходимые зависимости, давайте приступим к делу. Создайте новый файл index.js в папке node-restapi.

Создание сервера

Прежде всего, нам нужно импортировать все библиотеки, необходимые для создания REST API.

Здесь мы импортировали экспресс и инициализировали приложение, используя экспресс. Также нам нужно указать использовать форматированный запрос JSON со стороны клиента, который должен быть явно определен, потому что Node js автоматически обнаружит эти вещи, поскольку есть много форматов, которые может обрабатывать Node Project.

Теперь, когда мы завершили импорт и инициализацию, давайте напишем код для создания сервера.

Здесь мы должны передать номер порта и функцию обратного вызова внутри метода listen экспресса. Номер порта указывает адрес порта, в котором будет доступна служба REST API, а обратный вызов выдаст ответ на консоль относительно состояния сервера.

Теперь нажмите приведенную ниже команду, чтобы запустить сервер.

npm run dev

Если все в порядке, мы увидим сообщение, выброшенное в консоль.

Теперь нажмите CTRL+CLICK на ссылку, показанную в консоли.

ПОЛУЧИТЬ метод

Теперь мы увидим это сообщение как Cannot GET/ в браузере. Не бойтесь, все в порядке. Это показано, потому что мы не настроили метод get в корневом расположении API. Давайте сделаем это сейчас.

Здесь мы передали два параметра внутри метода GET, а именно. местоположение и функция обратного вызова. Теперь у нас есть «/» в качестве корневого местоположения, а в функции обратного вызова мы передали еще два параметра (req => request и res => response). И внутри обратного вызова мы отправляем сообщение как Hello World, используя параметр res. Запомните шаблон передаваемых параметров, так как они всегда будут в этих модах.

Теперь сохраните файл и обновите браузер.

Теперь мы будем использовать локально сохраненный файл в качестве нашей базы данных. Итак, для этого перейдите на сайт mockaroo.com, чтобы создать случайные данные json.

Теперь удалите все записи, сохранив первые две, и переименуйте first_name с full_name как

Теперь щелкните раздел типа full_name и найдите полное имя в поле поиска как

Теперь внизу выберите 10 #Rows вместо 1000, а также измените формат на JSON и снимите флажок с включения нулевых значений, как

Теперь просмотрите данные и скопируйте их. Или вы можете загрузить и открыть его в своей системе.

Теперь в каталоге нашего проекта создайте файл с именем data.json и вставьте скопированные данные. Сохраните файл, и мы готовы к работе.

Или можете пропустить эти шаги и просто скопировать данные отсюда :)

Теперь мы снова создадим метод get, но на этот раз мы будем отправлять список имен в виде json в ответ.

Теперь вы можете перейти по ссылке

https://localhost:3000/api/v1/students

и посмотрите данные ответа json, которые содержат данные, которые мы только что добавили.

Теперь, идя дальше, мы должны сделать запрос, отправив данные json из тела. Так что нам нужно немного больше, чем браузер. Таким образом, вы можете использовать любые инструменты, такие как Postman или Insomnia. Я буду использовать бессонницу, так что если вы тоже хотите, вы можете получить ее здесь

После загрузки бессонницы вы можете запросить коллекцию как:

Теперь создайте коллекцию как Node Rest API или что угодно:

Войдите в коллекцию и добавьте новый запрос как

Теперь назовите запрос как GET

Теперь добавьте ссылку, которую мы ранее использовали в браузере, чтобы получить ответ, т.е.

https://localhost:3000/api/v1/students

Теперь нажмите кнопку отправки и посмотрите ответы в правом конце.

Теперь давайте напишем код для получения определенного ресурса по запросу от клиента. Перед этим быстро нажмите на следующую конечную точку в том же методе GET, который мы создали.

https://localhost:3000/api/v1/students/1

Мы получим ошибку 404 not found, поскольку мы еще не реализовали этот метод, поэтому давайте реализуем его сейчас.

Теперь мы наконец добавили :id для получения запроса id от клиента. Затем мы находим студента с этим конкретным идентификатором, и если он недоступен в нашей базе данных, мы отправляем ошибку 404 not found вместе с сообщением Student not found. И если он присутствует, мы отправим объект студента в ответ.

После этого отправьте ту же конечную точку, с которой мы столкнулись ранее.

Теперь, пока мы это делаем, также отправьте идентификатор, которого нет в файле data.json. В нашем случае это больше 11. Поэтому нажмите на конечную точку с идентификатором больше 10 и посмотрите ответ.

Почтовый метод

Теперь, когда у нас все готово с методом Get, давайте перейдем к другому методу POST, который создает новый ресурс на сервере.

Здесь мы используем метод post, чтобы получить запрос от конечных пользователей и сохранить полное имя из тела. Также мы должны отправить сообщение об обработке ошибок, если пользователь отправляет пустые почтовые запросы. После этого мы должны создать объект студента с уникальным идентификатором (для этого мы просто добавляем 1 к длине наших данных. Наконец, добавляем вновь созданный объект студента в наши данные. Последний шаг — отправить тот же объект студента клиенту как ответ.

Теперь, чтобы проверить это, мы должны отправить запрос json. Для этого создайте новый запрос как POST и добавьте указанную конечную точку:

https://localhost:3000/api/v1/students

Теперь не забудьте выбрать метод POST из выпадающего списка.

Теперь выберите JSON как

Наконец, добавьте следующие данные json в раздел body и нажмите кнопку отправки.

{
 "full_name": "John Doe"
}

Теперь мы получим вновь созданного ученика в качестве ответа с новым идентификатором с сервера, как указано выше.

ПОЛОЖИТЬ Метод

Теперь мы создадим метод put, который обновляет ресурсы на сервере.

Как и в методе get для получения одного ресурса, в методе put мы также должны добавить :id для обновления данных, запрошенных клиентом.

После этого мы проверим, доступны ли эти данные в базе данных или нет, как мы делали ранее.

Теперь после обработки ошибок мы получим полное имя из тела и добавим обработку ошибок для этого, если данные пусты со стороны клиента.

Наконец, мы обновим полное имя запрошенного студента новым именем и отправим обновленного студента в ответ.

Теперь, чтобы проверить это, создайте новый запрос с именем PUT и выберите метод PUT из раскрывающегося списка и добавьте следующую конечную точку:

https://localhost:3000/api/v1/students/11

Мы будем обновлять студента с идентификатором 11, который был создан ранее. Теперь добавьте следующий JSON в раздел body как

Теперь нажмите кнопку отправки и наблюдайте за ответом. Если вы получаете сообщение об ошибке «Студент не найден», это может быть связано с перезапуском сервера, поэтому еще раз нажмите «Отправить» в методе POST, чтобы убедиться, что новый студент создан.

Вуаля! Джон изменился на Джейн, и наш метод работает.

УДАЛИТЬ Метод

И последнее, но не менее важное: мы реализуем метод удаления. Это довольно просто и понятно

Здесь мы используем метод удаления, а также мы должны указать :id для удаления конкретного ученика.

Теперь, как и в предыдущем случае, мы должны получить идентификатор из запроса и проверить, доступен ли этот студент или нет. Здесь нужно добавить новую вещь: получить индекс учащегося, чтобы удалить его. Мы используем простой метод сращивания Java Script, который принимает два аргумента, а именно. index и количество данных, которые необходимо удалить. Мы передаем индекс студента и 1, так как мы удаляем только один ресурс из списка.

И после удаления студента мы отправляем того же студента, который был удален.

Чтобы проверить этот метод, добавьте новый запрос в insomnia как DELETE, выберите DELETE в раскрывающемся списке и добавьте следующую конечную точку в блок URL.

https://localhost:3000/api/v1/students/1

Нажмите кнопку отправки, и вы получите ответ, как указано выше. Теперь вернитесь к методу GET и добавьте туда следующую конечную точку.

https://localhost:3000/api/v1/students/1

Там же нажмите кнопку отправки.

Теперь мы получим сообщение «Студент не найден», поскольку мы только что удалили его из метода DELETE.

Окончательно

Мы подошли к концу этого урока. Надеюсь, вы немного поучились.

Спасибо !