Как создать RESTful API с аутентификацией за 5 минут – все из командной строки (часть 1)

1662670829 kak sozdat restful api s autentifikacziej za 5 minut –

Нихарика Сингх

Если название этой статьи вас волнует, то мой друг, вы собираетесь достичь уровень 100 удовольствие до конца. Я быстро пройду курс этой статьи:

  1. Что мы собираемся создать: RESTful API, обрабатывающий журналы блюд в меню ресторана. База данных, используемая в бэкэнде, будет MongoDB. (Вы можете буквально использовать любую чертовую базу данных на этой планете. Ниже приведен исчерпывающий список соединителей/не соединителей базы данных, поддерживаемых LoopBack.)
  2. Что такое LoopBack: Если говорить очень просто, это фреймворк Node.js с открытым исходным кодом, который очень расширяется и используется для очень быстрого создания динамических сквозных REST API. API, созданные с помощью LoopBack, является Swagger API (самой популярной в мире структурой API, и вскоре вы увидите почему). Интерфейс можно создать в любом фреймворке, который вам нравится; Angular или React.
  3. Создание программы через CLI: Это часть WOW, которая удаляет все задействованное программирование. LoopBack CLI настолько хорош, что все часы разработки сокращаются до секунд. Здесь мы будем настраивать базу данных с помощью CLI.
  4. Создание моделей данных через CLI: Опять же без программирования. Все из-за великолепного CLI.
  5. Настройка аутентификации через CLI: Если у вас есть опыт создания API, вы знаете, как трудно ограничить части API с помощью аутентификации. Настройка аутентификации на основе маркеров с помощью Express+Node.js на стороне сервера является проблемой. Вся эта боль снимет вкус эликсира LoopBack! Это напиток небес.
iGHE28Ucn5MVvYyBssY3frS7FDU1HIUwo8AX

РЕКЛАМА

Пошаговая инструкция:

Предпосылки: Убедитесь, что у вас установлен Node.js, Robomongo и запущенный сервер MongoDB.

ШАГ 1. Установите LoopBack CLI через NPM

Откройте терминал и напишите такую ​​команду, чтобы установить LoopBack CLI, чтобы получить доступ к команде ‘lb’. Только с помощью команды ‘lb’ мы можем создавать программы, модели, источники данных и т.д. Для дальнейшего чтения: https://loopback.io/doc/en/lb2/Command-line-tools.html#using-yeoman

$ npm install -g loopback-cli

Убедитесь, что вы установили это глобально, в противном случае команда ‘lb’ может не работать для вас.

РЕКЛАМА

ШАГ 2: Создание программы

Создайте каталог, в котором вы хотите хранить свой проект. Я назову это «меню ресторана». Убедитесь, что вы открыли этот каталог в терминале, чтобы все файлы, созданные с помощью LoopBack, хранились в этой папке.

Затем введите следующую команду:

$ lb

Будут заданы многие вопросы, подобные тем, которые изображены на рисунке ниже.

R0sLAcXrQXqn-zeUSfj9thykmF9YwRcYKCNa
Вот как это должно выглядеть.

(Для перехода между параметрами используйте клавиши со стрелками на клавиатуре)

API СОЗДАН!

rBQvFJ35WfSz3QdckTEmIqPc6KUZDzftWIBd

Я не шучу. не верите мне? Запустите программу с помощью такой команды:

$ node .
rAYYNopW-YM9SyR51w47dU6VI2lEsF1Rto1U

Если вы укажете на localhost:3000, вы увидите что-то вроде этого:

yiv9xKmwl7OkCTdHmolz7o232lczz6KNBB6o
Это только сообщит вам, когда был запущен API и сколько секунд он был активен.

Однако если вы перейдете к localhost:3000/explorer, вы увидите отличный SwaggerAPI.

nGKuHXxfQh-B85Ny9MIXh8GiXpyW7nSn6yCN

LoopBack настроил все маршруты для вас:

Пользователи GET, пользователи POST, пользователи PUT, пользователи DELETE, вход, выход, смена пароля. Буквально все! Иначе на кодировку этого понадобились бы часы работы.

Откройте эту папку в любом текстовом редакторе. Я бы использовал Atom.

РЕКЛАМА

ШАГ 3: Подключение MongoDB

Если вы откроете datasources.json в папке «Сервер» вы должны увидеть что-то вроде:

{  "db": {    "name": "db",    "connector": "memory"  }}

Это означает, что источником данных является память нашего компьютера. Мы должны изменить это на Mongo. Итак, давайте установим коннектор mongo:

$ npm install --save loopback-connector-mongodb

Надеюсь, рядом бежит монгод. Вот как вы узнаете, что он работает:

2018-01-27T15:01:13.278+0530 I NETWORK  [thread1] waiting for connections on port 27017

Теперь давайте подключим разъем!

$ lb datasource mongoDS --connector mongoDB

Это задаст много вопросов:

-satN8CMcb23tpBD1cmouXNwjbr4gLG9ArWj

Теперь смените datasources.json потому что мы не хотим использовать память. Мы хотим использовать Mongo.

{  "db": {    "host": "localhost",    "port": 27017,    "url": "",    "database": "food",    "password": "",    "name": "mongoDS",    "user": "",    "connector": "mongodb"  }}

Итак, название нашей базы данных: food создается.

ШАГ 4: Создание моделей данных

Выполните следующую команду, чтобы создать модели данных:

$ lb model
rhCkwWcP7f1SiI5ezMAvtdHhXU6eUllSB9pZ

Вы можете добавить сколь угодно свойств к определенной модели. Чтобы прекратить введение других свойств, просто нажмите Enter, чтобы выйти из CLI.

Проверить dishes.json в папке Common/Models.

{  "name": "dishes",  "base": "PersistedModel",  "idInjection": true,  "options": {    "validateUpsert": true  },  "properties": {    "name": {      "type": "string",      "required": true    },    "price": {      "type": "number",      "required": true    }  },  "validations": [],  "relations": {},  "acls": [],  "methods": {}}

Вы также можете редактировать свойства этого файла json. Не обязательно использовать CLI.

Теперь давайте перезапустим сервер с помощью такой команды и перейдем в localhost:3000/explorer

$ node .

Теперь вы увидите 2 модели: dishesи user

yiCcXdhwh6KmkvQ65H6KHvjskh9pbc9JbXbr

Теперь давайте ПУБЛИЦИРУЕМ dish.

bncjurriEZN0SKiIdb7POrdOAocWlFjNAQHR

Теперь давайте ПОЛУЧИМ то же dish.

38k0M-rkWNr5-x1UDVtS0L7w9IDFWd0ucxlv

Вы также можете поиграть с другими HTTP-запросами!

К этим API также можно получить доступ вне проводника:

w-Hiil7wjDNHghvGoW488BgOsHwBzgVEDs2T

РЕКЛАМА

ШАГ 5: АВТЕНТИФИКАЦИЯ: вишенка на торте!

Чтобы настроить аутентификацию, выполните следующие действия.

$ lb acl
bd94tNvvyNQzynur9S9CKyC-lSKoU8IKR2ye

Теперь давайте попробуем ПОЛУЧИТЬ dishes. Перед этим перезапустите сервер.

BeN7OxZjcmu7EcRwPvf0PRab8HRavKLx3ya9
Таким образом, он не получит ни одной посуды. Как и ожидалось. Потому что мы не вошли в систему. Он сообщает нам о том, что нужна аутентификация.

Давайте пройти аутентификацию! Для этого нам нужно сначала зарегистрироваться. Поэтому мы ПУБЛИЦИРУЕМ users.

IhYOhlb41zpLxsKOtVzX37Ji7dVriLKDv2Ln

Теперь давайте войти.

hxCQm4xGEBEvevqPZtL6sgVN1mXoRV5tpj2u

Скопируйте идентификатор с тела ответа и вставьте его в поле Access Token в верхней части страницы.

NY830CQpK2jD-BMJ0gvbDAadX1KOGyC8fh-r

Теперь мы аутентифицированы. YAY.

А теперь возьмем dishes снова.

DhkE4UiURk9UHLXBvwWBLlM2PoWjeZuWc5dM

УРА!

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

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

cJRJuth-oFUh34e3LYZXnP2dl75mFx3jHuPf

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

До свидания, люди!
Счастливый код.

Если статья была полезна, напишите ее в Twitter.

Добавить комментарий

Ваш адрес email не будет опубликован.