Создание API (ов) может занять много времени. Но есть такие пакеты, как json-server, hai-server и т. Д., Которые помогают нам создать полностью поддельный REST API с нулевым кодированием менее чем за 30 секунд.

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

Установите hai-server на свой локальный компьютер. Подробнее читайте здесь.

npm install -g hai-server

Создайте db.json файл с некоторыми данными

{
"posts": [
{ "id": 1, "title": "hai-server", "author": "sumn2u" }
],
"comments": [
{ "id": 1, "body": "some comment", "postId": 1 }
],
"profile": { "name": "sumn2u" }
}

Запустите hai-server , выполнив следующую команду в терминале.

hai-server --watch db.json

Теперь, если вы перейдете по адресу http: // localhost: 3000 / posts / 1, вы получите

{ "id": 1, "title": "hai-server", "author": "sumn2u" }

Как ограничить доступ к API?

Создайте файл с именем auth.json, аналогичным показанному ниже. Предоставьте свои собственные secretKey, expiresIn и коллекцию аутентифицированных пользователей. Здесь authenticatedURL указывает на набор URL-адресов, требующих авторизации, а authenticationURL - это URL-адрес для получения access_token. Полученные таким образом access_token можно использовать для доступа к авторизованным API.

{
"secretKey":"123456789",
"expiresIn": "1h",
"users": [
{
"id": 1,
"name": "bruno",
"email": "[email protected]",
"password": "bruno"
},
{
"id": 2,
"name": "techie",
"email": "[email protected]",
"password": "techie"
},
{
"id": 3,
"name": "nilson",
"email": "[email protected]",
"password": "nilson"
}
],
"authenticationURL":"/auth/login",
"authenticatedURL":["/comments"]
}

Примечание. Здесь мы ограничиваем /commentsapi.

Запустите hai-server в своем терминале.

hai-server --watch db.json --auth auth.json --port 3000

Как войти?

Вы можете войти в систему, отправив запрос POST на адрес

POST http://localhost:3000/auth/login

со следующими данными.

Примечание. Мы можем выбрать любые пользовательские данные из списка пользователей файла auth.json.

{
  "email": "[email protected]",
  "password":"nilson"
}

Вы должны получить токен доступа следующего формата

{
   "access_token": "<ACCESS_TOKEN>"
}

Вы должны отправить эту авторизацию с любым запросом на защищенные конечные точки.

Authorization: Bearer <ACCESS_TOKEN>

Вы можете вызвать ограниченный API из access_token.

Вывод

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