[[oktatas:web:nodejs|< Node.js]]
====== HAI szerver ======
* **Szerző:** Sallai András
* Copyright (c) 2023, Sallai András
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]]
* Web: https://szit.hu
===== A hai-server =====
A hai-server egy hamis REST API szerver (fejlesztői szerver), ami JSON fájlt használ tárolásra.
Képes token alapú azonosításra, útválasztásra.
Webhely:
* https://github.com/sumn2u/hai-server (2023)
* https://www.npmjs.com/package/hai-server (2023)
===== Telepítés =====
Telepítés globálisan:
npm install --global hai-server
Telepítés csak az adott projekt számára:
npm install --save-dev hai-server
===== Példaadatbázis =====
{
"employees": [
{
"id": 1,
"name": "Lant Géza",
"city": "Szeged",
"salary": 342
},
{
"id": 2,
"name": "Erős István",
"city": "Szolnok",
"salary": 327
}
]
}
A hai-server indítása, ha db.json fájlban vannak az adatok:
hai-server --watch db.json --port 8000
===== Hozzáférés korlátozása =====
Az egyes útvonalak védhetők azonosítással.
Azonosítás után kapunk egy tokent, ami szükséges a védett útvonalak esetén vissza kell küldeni.
{
"secretKey": "123456789",
"expiresIn": "1h",
"users": [
{
"id": 1,
"name": "geza",
"email": "geza@zold.lan",
"password": "titok"
},
{
"id": 2,
"name": "mari",
"email": "mari@zold.lan",
"password": "titok"
}
],
"authenticationURL": "/auth/login",
"authenticatedURL": [
"/employees"
]
}
===== Indítás =====
Ha azonosítás is szükséges, használjuk a --auth kapcsolót.
hai-server --watch db.json --auth auth.json --port 8000
===== Azonosítás menete =====
Azonosításhoz POST metódus szükséges az /auth/login végponton.
POST http://localhost:8000/auth/login
Azonosításhoz szükséges küldeni:
{
"email": "mari@zold.lan",
"password":"titok"
}
===== A korlátozott hozzáférés =====
Egy védett útvonal azonosításához a kérés fejlécében a következő formában kell a tokent visszaküldeni:
Authorization: Bearer
===== Beállítások =====
Néhány kapcsoló:
| --port 8000 \\ -p 8000 | Port beállítása 8000-re |
| --watch \\ -w | Ha más folyamat írja az adatbázisfájlt, újratölti a szerver a változásokat. |
| --routes \\ -r | Útválasztó fájl útvonala |
| --auth \\ -a | Azonosítás fájl útvonala |
===== Konfigurációs fájl =====
A hai-server alapértelmezetten olvassa a projekt gyökérkönyvtárában a hai-config.json fájt, mint konfigurációs fájlt. Itt most néhány példát látunk a beállításokra.
{
"port": 8000,
"watch": true
}
Azonosítás és routnggal együtt:
{
"port": 8000,
"watch": true,
"auth": "auth.json",
"routes": "routes.json"
}
Az indítás ekkor:
hai-server database.json
===== Routing =====
Routingfájl:
{
"/api/*": "/$1"
}
===== Java programok =====
Java programok, mostanában a localhostot csak IPv6-on érik el:
http://[::1]:8000/employees