5 простых шагов для создания микросервиса REST в NodeJS
Вам нравится NodeJS? Вы заинтересованы в микросервисах, но не знаете, как их создавать? Останься со мной! Я покажу вам, насколько просто создать микросервис с помощью фреймворка микросервисов Moleculer в NodeJS.
Что мы будем делать?
Мы собираемся создать микросервис, который может хранить данные в БД памяти и публиковать доступ через HTTP-порт (API Gateway) с REST API.
Вам нужно…
- NodeJS (как минимум v8.x)
- VSCode или любой другой текстовый редактор.
- PostMan или любой другой тестер REST API.
Вы готовы?
Шаг 1. Установите инструмент Moleculer CLI.
Мы собираемся создать проект Moleculer из шаблона. Для этого мы используем официальный инструмент Moleculer CLI. Вы можете установить его с помощью следующей команды:
npm install -g moleculer-cli
Шаг 2. Создайте новый проект микросервиса
moleculer init project-simple my-first-service
Эта команда создает новый проект на основе Moleculer в папке my-first-service. Он спросит следующее:
Если команда будет выполнена, появится папка my-first-service, содержащая проект NodeJS, подготовленный для платформы Moleculer.
Войдите в эту папку с помощью команды cd my-first-service
.
Шаг 3: Установите модуль Moleculer DB
Мы используем модуль Moleleler-db как миксин для хранения данных в нашем сервисе.
Установите его с помощью следующей команды:
npm install moleculer-db --save
Молекула-db - это служба доступа к базе данных CRUD. Это простое решение. Если вам нужно больше, просто расширьте его с помощью пользовательских миксинов.
Шаг 4. Создайте новую услугу
Откройте созданную папку в текстовом редакторе. В нем есть папка services
, содержащая службы. api.service.js
- это служба шлюза API. Он опубликует ваш новый. greeter.service.js
- это просто пример службы.
Создайте файл products.service.js
в папке services
и вставьте в него следующий код, чтобы создать новую службу для хранения продуктов:
Модуль Молекула-БД - это универсальный модуль хранения данных. Имеет общие действия CRUD (создание, список, поиск, получение, обновление, удаление). Если вы не установите адаптер, он будет использовать встроенный адаптер NeDB и сохранять данные в памяти.
Начните свой проект с команды npm run dev
. Он опубликует вашу службу на порту 3000 (по умолчанию). Откройте URL-адрес http: // localhost: 3000 / api / products / list в Почтальоне, и вы получите ответ от своей службы.
Поздравляем, вы создали свой микросервис REST!
После запуска сервисов консоль перейдет в режим REPL. В режиме REPL вы можете получать информацию о ваших сервисах, вызывать их, отправлять события… и т. Д. Подробнее о командах REPL можно прочитать здесь.
С помощью команды
npm run dev
брокер переключается в режим горячей перезагрузки, поэтому вы можете изменять и тестировать свои службы без перезапуска.
Нажмите кнопку
q
, чтобы выйти из режима REPL и остановить службы.
Шаг 5. Настройте REST в службе API Gateway
Чтобы получить доступ к новому сервису продукта через REST API, откройте файл api.service.js
и измените его в соответствии со следующим кодом (добавьте блокaliases
):
Клавиша "REST products"
в aliases
создает общие пути REST и связывает их с products
действиями службы.
"GET products": "products.list", "GET products/:id": "products.get", "POST products": "products.create", "PUT products/:id": "products.update", "PATCH products/:id": "products.patch", "DELETE products/:id": "products.remove"
Подробнее о псевдонимах вы можете прочитать в Веб-документации Moleculer.
Сохраните изменения, и сервис будет перезагружен. Теперь вы можете протестировать свой сервис с помощью Postman.
- Создать продукт:
POST https://localhost:3000/api/products
- Получите товар по ID:
GET https://localhost:3000/api/products/12345
- Список продуктов:
GET https://localhost:3000/api/products
- Обновить продукт:
PUT https://localhost:3000/api/products/12345
- Удалить продукт:
DELETE https://localhost:3000/api/products/12345
Заключение
Вы успешно создали свой первый микросервис. Хорошо, я знаю, что это была очень простая демонстрация. Он не содержит постоянного хранилища, аутентификации, авторизации, масштабирования и т. Д. Но вы можете видеть, насколько легко создать базовые микросервисы с помощью фреймворка Moleculer, который может хранить ваши данные, и вы можете получить к ним доступ через REST API.
✨ Бонусные шаги
Хранить данные в MongoDB
Для модуля Moleculer DB существует официальный адаптер MongoDB. Вы можете установить его в своем сервисе, и ваши данные будут храниться в коллекции MongoDB.
Установите адаптер:
npm install moleculer-db-adapter-mongo --save
Подключите адаптер к своей службе:
Это сделано. Отныне каждый продукт будет храниться в вашей MongoDB.
Если вы хотите узнать больше о фреймворке Moleculer, посетите наш сайт https://moleculer.services или Github.
Следуйте за нами в Twitter на @MoleculerJS или присоединяйтесь к нашему чату Discord.