Создание REST API с помощью Feathers.js и SQLite

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Вы ищете способ создать веб-приложение с такими функциями, как аутентификация, настройка базы данных и авторизация, без написания тонны кода и конфигураций? Когда-нибудь хотели создать готовое к выпуску в прод приложение за считаные дни?

Хотите — верьте, хотите — нет, но это возможно! Это руководство покажет вам, как использовать Feathers.js для создания REST API за считаные минуты. Мы изучим Feathers.js, реализуем пример API, а также поделимся некоторыми мыслями и соображениями.

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

Что такое Feathers.js


Feathers — это лёгкий веб-фреймворк для разработки приложений реального времени (RTA) и REST API на JavaScript или TypeScript.

Feathers может взаимодействовать с любой backend и frontend технологией, такой как React, VueJS, Angular и React Native, а также поддерживает более десятка баз данных.

Feathers.js известен своей простотой использования и быстротой внедрения, а также обширной документацией. С Feathers всё, что вам нужно для добавления функции, — это выполнить простую команду.

Рекомендуемые требования


Этот материал представляет собой практическую демонстрацию. Прежде чем начать, я бы хотел, чтобы у вас было всё необходимое:

  • установлен Node.js,
  • установлен Arctype,
  • установлен Insomnia,
  • есть предварительные знания о Node.js и Express.js.

Что мы будем делать?


Вы создадите приложение для проката фильмов, чтобы проиллюстрировать возможности инструментов визуализации баз данных Feathers.js и Arctype. Администратор будет генерировать фильмы в этой программе, а аутентифицированные пользователи смогут брать их напрокат. Вы научитесь использовать Sequelize для корреляции таблиц в Feathers.js, ограничивать доступ к определённым маршрутам и связывать свою базу данных с Arctype.

Приступим к делу


Для начала откройте интерфейс командной строки и создайте папку для нашего руководства с помощью приведённой ниже команды:

npm install @feathersjs/feathers --save
Установка Feathers

Дождитесь завершения установки и подтвердите её с использованием приведённой ниже команды:

feathers -V
Подтверждение установки

Если установка прошла успешно, вы увидите в консоли номер версии.

Создание приложения


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

Mkdir RestWithFeathers && RestWithFeathers
Создание папок

Затем с помощью данной команды создайте новое API-приложение:
feathers generate app
Создаём приложение

Приведённая выше команда предложит вам выбрать конфигурацию для вашего приложения. Для демонстрации в рамках данного руководства ваш выбор должен выглядеть так, как показано на скриншоте ниже:

Ожидаемый результат

На приведённом выше скриншоте мы выполнили следующие действия:

  • Выбрали Javascript в качестве предпочтительного языка программирования,
  • Указали название для приложения (movie-rental),
  • Выбрали src в качестве места для размещения шаблонов проекта,
  • Выбрали npm в качестве управляющего пакета,
  • Включили аутентификацию пользователей,
  • Выбрали Eslint для анализа нашего кода,
  • Выбрали стратегию аутентификации по имени пользователя и паролю,
  • Выбрали user в качестве имени для нашей сущности,
  • Выбрали Sequelize в качестве ORM для приложения,
  • Выбрали SQLite в качестве нашей базы данных,
  • Указали movieDB в качестве имени нашей базы данных.

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


Структура папки

В этом руководстве мы рассмотрим только следующие пункты:

  • config: содержит файлы конфигурации для приложения,
  • node_modules: папка для хранения списка установленных пакетов, необходимых для работы приложения,
  • ublic: содержит статические файлы, которые могут быть переданы клиенту,
  • src: содержит серверный код для приложений Feathers.js,
  • src/hooks: содержит пользовательские хуки приложения,
  • src/middleware: содержит промежуточные модули Express,
  • src/service: содержит наши службы приложения,
  • src/index.js: стартовый файл, запускающий приложение,
  • src/app.js: настраивает наше приложение Feathers,
  • src/app.hook.js: содержит хуки, которые применяются к каждой службе,
  • src/channels.js: устанавливает каналы событий Featherjs,
  • test: содержит тест для приложения.

Теперь запустим сервер в режиме разработки при помощи команды ниже:

npm run dev
Запуск сервера

Запуск сервера в режиме разработки активирует горячую перезагрузку и ведение журнала ошибок в консоли. В этот момент сервер должен быть запущен на порту 3030, а файл moviedb.sqlite должен быть создан в корневом каталоге вашего проекта.

Создание служб


Служба — это объект или экземпляр класса, который реализует определённые методы. Службы обеспечивают согласованный, независимый от протокола интерфейс для взаимодействия с любыми данными. В Feathers достаточно выполнить команду, и всё будет готово для создания службы. Создайте службу фильма (movie service) с помощью приведённой ниже команды:

feathers generate service
Создание службы

Команда предложит вам выбрать конфигурации для вашей службы. Ваш выбор должен выглядеть так, как показано на скриншоте ниже:


Результат выполнения команды generate service

Здесь мы выбрали ORM для таблицы фильмов, имя службы, URL маршрута и включили аутентификацию на маршрутах фильмов. После того как эти параметры будут выбраны, команда создаст структуру папок в src/service.

Источник: https://habr.com/ru/company/first/blog/665940/


Интересные статьи

Интересные статьи

Меня зовут Борзов Олег, я техлид команды разработки CRM-системы для менеджеров ипотечного кредитования крупного банка. Сегодня я хочу рассказать, как наша команда разработки упрощает часть рабочих про...
Время от времени нам приходится писать статьи о проверке очередной версии какого-то компилятора. Это неинтересно. Однако, как показывает практика, если этого долго не делать, люди начин...
Мы в Lifion строим распределенную платформу и портфель продуктов для клиентов по всему миру. С учетом этого важно, чтобы мы могли выпускать обновления нашей платформы непрерывно прямо в...
Кустикова Валентина, Васильев Евгений, Вихрев Иван, Дудченко Антон, Уткин Константин и Коробейников Алексей. Intel Distribution of OpenVINO Toolkit — набор библиотек для разработки приложений,...
История сегодня пойдёт про автосервис в Москве и его продвижении в течении 8 месяцев. Первое знакомство было ещё пару лет назад при странных обстоятельствах. Пришёл автосервис за заявками,...