Запуск REST API с помощью Node.JS

Сегодня мы начинаем учебник по REST API с Node.JS, и в этой первой части мы узнаем, как настроить наш API и организовать маршруты!

Что такое REST API?

REST API — это интерфейс, который предоставляет данные в стандартизированном формате на основе HTTP-запросов.

REST использует глаголы (GET, POST, DELETE, UPDATE, среди прочих, это самые используемые) протокола HTTP в качестве основы для запросов.

Например:
Мы можем иметь одинаковые конечные точки, которые делают разные вещи, в зависимости от метода запроса (глагола).

url https://exemplo.com.br/usuario/57, при запросе GET, принесет информацию, принадлежащую идентификатору пользователя 57, при запросе DELETE удалит из базы данных идентификатор пользователя 57, а при UPDATE изменит данные пользователя 57.

Вот почему важно обращать внимание на метод запроса.

Давайте посмотрим на практике

Давайте начнем писать наш API, для этого у вас должны быть установлены Node.JS и NPM.

После этого откроем терминал, создадим папку для нашего проекта и перейдем в нее:

mkdir api-rest
cd api-rest
Войдите в полноэкранный режим Выход из полноэкранного режима

Теперь давайте запустим npm:

npm init -y
Войдите в полноэкранный режим Выход из полноэкранного режима

Для начала мы будем использовать два пакета: Express и Cors.

Express — это минимальный и гибкий фреймворк для веб-приложений Node.js, который обеспечивает надежный набор функций для веб- и мобильных приложений.

Cors — это то, что позволит вашему API принимать запросы с разных доменов.

Мы также можем настроить его на прием только с определенных доменов (при необходимости) для дополнительной безопасности API.

Давайте установим их:

npm i express cors

Войдите в полноэкранный режим Выход из полноэкранного режима

Конфигурация

Мы можем создать файл в корне под названием server.js, в котором мы будем настраивать express.

const express = require('express');
const cors = require('cors');
const app = express();

app.use(cors());
app.use(express.json());
app.listen(3333);
Войдите в полноэкранный режим Выход из полноэкранного режима

С помощью приведенного выше кода мы настроили наш API на прием запросов от любого источника с cors и возврат всего в JSON.

После того, как мы получили наш API, мы можем запустить его с помощью nodemon.

Nodemon — это помощник, который будет следить за нашими API файлами, как только мы сохраним изменения, он перезапустит сервер, поэтому нам не нужно делать это вручную.

Давайте установим nodemon глобально, чтобы сделать это проще.

npm i -g nodemon

Войдите в полноэкранный режим Выход из полноэкранного режима

Давайте запустим API

nodemon server.js

Войдите в полноэкранный режим Выход из полноэкранного режима

Контроллеры

Контроллер отвечает за управление тем, как пользователь взаимодействует с приложением MVC, и содержит логический поток управления для приложения. Именно контроллер определяет, какой ответ будет отправлен обратно пользователю, когда он делает запрос.

Создание контроллера:

Мы создаем папку src под названием Controllers, а в ней файл UsuarioController.js со следующим кодом:

exports.post = (req, res, next) => {
   res.status(201).send('Rota POST!');
};

exports.put = (req, res, next) => {
   let id = req.params.id;
   res.status(201).send(`Rota PUT com ID! --> ${id}`);
};

exports.delete = (req, res, next) => {
   let id = req.params.id;
   res.status(200).send(`Rota DELETE com ID! --> ${id}`);
};

exports.get = (req, res, next) => {
   res.status(200).send('Rota GET!');
};

exports.getById = (req, res, next) => {
   let id = req.params.id;
   res.status(200).send(`Rota GET com ID! ${id}`);
};
Войдите в полноэкранный режим Выход из полноэкранного режима

Мы создаем методы по умолчанию для каждого типа глаголов, начиная с HTTP.

В реальных приложениях очень часто встречаются такие методы (но они переименованы в точную функцию, но в дидактических целях сегодня будет так), знаменитый CRUD:

  • C — Создать (POST)
  • R — чтение (GET)
  • U — Обновление (PUT)
  • D — Удалить (DELETE)

Мы также помещаем статус запроса (200, 201), что означает успех, и успех без возвращаемого объекта, соответственно.

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

Внутри src мы создаем папку Routes;

Внутри routes мы создадим файл index.js (где мы разместим все маршруты) и еще один файл UsuarioRoute.js, где будут находиться маршруты для пользователя.

index.js

const UsuarioRoute = require('./UsuarioRoute');
module.exports = (app) => {
   UsuarioRoute(app)
}
Войдите в полноэкранный режим Выход из полноэкранного режима

UsuarioRoute.js

const UsuarioController = require('../Controllers/UsuarioController');
module.exports = (app) => {
   app.post('/usuario', UsuarioController.post);
   app.put('/usuario/:id', UsuarioController.put);
   app.delete('/usuario/:id', UsuarioController.delete);
   app.get('/usuarios', UsuarioController.get);
   app.get('/usuario/:id', UsuarioController.getById);
}
Войдите в полноэкранный режим Выход из полноэкранного режима

Теперь каждый раз, когда мы создаем файл маршрута, просто импортируйте его в индексный файл Routes, как мы это делали с пользовательским файлом.
А теперь нам нужно внести небольшое изменение в файл server.js, чтобы маршруты заработали.

const express = require('express');
const cors = require('cors');
const app = express();
require('./src/Routes/index')(app); // <--- basta adicionar essa linha
app.use(cors());
app.use(express.json());
app.listen(3333);
Войдите в полноэкранный режим Выход из полноэкранного режима

Теперь мы можем протестировать его (если nodemon не запущен > nodemon server.js)

Вот и все на сегодня!

В этой статье мы рассмотрели основы для того, чтобы наш API работал просто и эффективно.

А в следующих шагах мы создадим соединение с mongodb, установим аутентификацию JWT, обработку ошибок и многое другое, так что следите за новостями!


Этот контент является репостом с сайта EZ.devs.

Оцените статью
devanswers.ru
Добавить комментарий