Всем привет, в этой статье я хочу рассказать, как создать Restful API с Node.js, Express и базой данных DynamoDB.

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

DynamoDB — это база данных ключей и документов, обеспечивающая производительность в миллисекунды при любом масштабе. Это полностью управляемая, мультирегиональная, многоактивная, надежная база данных со встроенными функциями безопасности, резервного копирования и восстановления, а также кэшированием в памяти для интернет-приложений. Сначала убедитесь, что у вас есть учетная запись AWS, а затем откройте консоль DynamoDB и создайте таблицу.

В этом руководстве я создаю таблицу Users и использую первичный ключ UserID с типом данных String без ключа сортировки. В режиме «Чтение/запись» я выбираю «По запросу».

Итак, начнем, подготовим вашу IDE. Создайте структуру проекта, как показано на изображении ниже.

Создайте файл .env в корне проекта, измените его на свой конфиг dynamodb.

Создайте файл database.js в папке src › helpers. В этом файле мы настраиваем соединение Node.js с DynamoDB.

Далее мы создадим пользовательский модуль. Пользовательский модуль состоит из 3 частей:

  • Репозиторий управляет операциями базы данных.
  • Сервис управляет бизнес-логикой, такой как обработка данных, проверка и т. д.
  • Контроллер управляет запросом/ответом.

Создайте файл user.repository.js. Этот файл будет управлять операциями базы данных, такими как поиск данных пользователя по идентификатору пользователя, создание пользователя, обновление пользователя по идентификатору пользователя и удаление пользователя по идентификатору пользователя. Мы используем библиотечный UUID для первичного ключа UserID.

Затем создайте user.service.js. Этот файл будет управлять возвращаемыми данными из user.repository.js.

Наконец, в пользовательском модуле создайте файл user.controller.js.

Далее мы настроим конечную точку маршрута для этого API. У этого API есть 4 конечных точки:

1. GET /api/v1/users/:UserID fetch data user by UserID
2. POST /api/v1/users create data user
3. PATCH /api/v1/users/:id update data user by UserID
4. DELETE /api/v1/users/:id delete data user by UserID

Вопрос в том, почему нет конечной точки, чтобы получить всех пользователей? Если вы хотите создать конечную точку для всех пользователей, вы должны создать GSI. Я создам учебник позже :).

Далее создайте файл server.js. Настроим express.js. Приложение использует порт 3000. Анализатор тела библиотеки используется для получения данных из тела запроса.

Наконец, создайте файл app.js. В этом файле мы вызовем файл server.js и запустим createServer. Библиотека dotenv используется для управления средой dynamodb.

Мы будем тестировать использование приложения postman. Команда Run :

node app.js or if you use nodemon, nodemon app.js

Опубликовать пользователя /api/v1/users

Тело :

{
 "Username":"faerulsalamun"
}

ПОЛУЧИТЬ пользователя по идентификатору /api/v1/users/:UserID

Обновить пользователя /api/v1/users/:UserID

Тело :

{
 "Username":"faerulsalamun"
}

Удалить пользователя /api/v1/users/:UserID

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