[[oktatas:web:nodejs|< NodeJS]] ====== 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