5.8 KiB
Express API - MariaDB-hez
A konténerizált NodeJS Express Api, ami a MariaDB adatbázist kiszolgálja.
Endpointok
[GET] /
Egyszerű health check végpont az API elérhetőségének ellenőrzésére. Nem igényel autentikációt.
példa:
Request Body:
{}Response:
{ "status": "ok" }
[POST] /auth
Bejelentkezés: ellenőrzi, hogy a megadott felhasználónév és jelszó helyes-e, és visszaadja, hogy az illető admin-e.
példa:
Request Body:
{ "authUname": "admin", "authPw": "secret" }Response (sikeres):
{ "ok": true, "admin": true, "userId": 1 }Response (hibás adatok):
{ "ok": false, "admin": false }
Felhasználók (/users)
Minden /users művelet admin jogosultságot igényel. Az admin azonosítása a body-ban küldött authUname és authPw mezőkkel történik.
[GET] /users
Összes felhasználó listázása (admin szükséges).
példa:
Request Body:
{ "authUname": "admin", "authPw": "secret" }Response:
{ "ok": true, "users": [ { "id": 1, "uname": "admin", "admin": true, "note": "asd" }, { "id": 2, "uname": "user1", "admin": false, "note": null } ] }
[POST] /users
Új felhasználó létrehozása (admin szükséges). A jelszó SHA-256-tal hash-elten kerül tárolásra.
példa:
Request Body:
{ "authUname": "admin", "authPw": "secret", "uname": "ujuser", "pw": "valami", "admin": false, "note": "Megjegyzés" }Response:
{ "ok": true, "id": 3 }
[PATCH] /users
Felhasználó módosítása (admin szükséges). Az id kötelező; a többi mező opcionális. A pw-t plaintext-ben kell küldeni, a szerver hash-eli.
példa:
Request Body:
{ "authUname": "admin", "authPw": "secret", "id": 2, "uname": "user2", "pw": "ujjelszo", "admin": false, "note": "Frissített felhasználó" }Response:
{ "ok": true }
[DELETE] /users
Felhasználó törlése (admin szükséges) az id alapján.
példa:
Request Body:
{ "authUname": "admin", "authPw": "secret", "id": 2 }Response:
{ "ok": true, "deleted": 1 }
Kontaktok (/contacts)
Minden /contacts művelet auth-ot igényel (bármely létező felhasználó). A body-ban authUname és authPw szükséges.
[GET] /contacts
Összes kontakt listázása (auth szükséges).
példa:
Request Body:
{ "authUname": "user1", "authPw": "secret" }Response:
{ "ok": true, "contacts": [ { "id": 1, "name": "Teszt Elek", "phone": "+36 30 123 4567", "address": "Budapest", "note": "VIP" } ] }
[POST] /contacts
Új kontakt létrehozása (auth szükséges).
példa:
Request Body:
{ "authUname": "user1", "authPw": "secret", "name": "Teszt Elek", "phone": "+36 30 123 4567", "address": "Budapest", "note": "VIP" }Response:
{ "ok": true, "id": 5 }
[PATCH] /contacts
Kontakt módosítása (auth szükséges). Az id kötelező; a name, phone/phome, address, note opcionálisak.
példa:
Request Body:
{ "authUname": "user1", "authPw": "secret", "id": 5, "name": "Teszt Elek Jr.", "phone": "+36 70 111 2222", "note": "Frissítve" }Response:
{ "ok": true }
[DELETE] /contacts
Kontakt törlése (auth szükséges) az id alapján.
példa:
Request Body:
{ "authUname": "user1", "authPw": "secret", "id": 5 }Response:
{ "ok": true, "deleted": 1 }
Futtatás:
A konténert a docker-compose.yml file írja le a Dockerfile alapján. Futtatása a következő:
Indítás
docker compose up -d
Bizonyos operációs rendszereken
docker-compose up -d.Illetve első indításnál
docker compose up -d --build
Logokkal való indításhoz a docker compose logs használható, folyamatos debug logokért a következő indítóparancs használatos Windows-on:
docker compose up -d ; docker compose logs -f
Linux alatt
docker compose up -d && docker compose logs -fVagydocker-compose up -d && docker-compose logs -f
Leállítás
A konténer és hozzá tartozó network leállítása a következővel érhető el:
docker compose down
Bizonyos operációs rendszereken
docker-compose down
Linux - sudo probléma
Néha Linux alatt - verziótól függően - gyakori probléma az, hogy minden docker és docker compose process root alatt fut. Ezért ilyenkör a következő parancsokkat érdemes használni:
# Indítás:
sudo docker compose up -d
# Logok:
sudo docker compose logs -f
# Indítás - logokkal:
sudo docker compose up -d && sudo docker compose logs -f
# Leállítás:
sudo docker compose down
Illetve a Docker Compose verziójától függően ugyan ez vonatkozik:
# Indítás:
sudo docker-compose up -d
# Logok:
sudo docker-compose logs -f
# Indítás - logokkal:
sudo docker-compose up -d && sudo docker-compose logs -f
# Leállítás:
sudo docker-compose down
Windows
A Docker Dekstopot telepítve egyből lejön a docker compose parancs, amit cmd-ből, vagy PowerShell-ből tudunk használni, ugyan úgy, mint Linux alatt.
Fontos!
Fontos, hogy a cmd-t és a PowerShellt is adminisztrátorként futtassuk!