Всем привет, в этой статье я хочу рассказать, как создать 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
Исходный код этого урока можно найти здесь.