dbrapi0.smarti.me – Backend API szerver
Áttekintés
A dbrapi0.smarti.me egy Node.js alapú backend API szerver, amely aktivációs kódok, felhasználókezelés, szavazás, nyelvi lokalizáció és külső szolgáltatások integrációját kezeli. A projekt moduláris, jól karbantartható és skálázható felépítésű, világosan elkülönítve a routingot, üzleti logikát, adatbázis-hozzáférést és segédfunkciókat.
Tartalomjegyzék
- Projektstruktúra
- Mappák és fájlok leírása
- API végpontok
- Adatbázis modellek
- Konfiguráció
- Indítás és telepítés
- Példa adatfolyam
- Segéd- és régi szkriptek
- Architektúra diagramok (Mermaid)
- Hozzájárulás
- Licenc
Projektstruktúra
.
├── apis/
├── controllers/
├── middleware/
├── models/
├── storagecontroller/
├── .env
├── dbrApiServer0.js
├── dbrApiServer0.log
├── package.json
├── startapi0
├── z
├── zdbConnect-backup.js
├── zdrb-test-api.php
Mappák és fájlok leírása
Gyökérkönyvtár
-
.env
Környezeti változók adatbázis kapcsolathoz, API kulcsokhoz és konfigurációhoz. -
dbrApiServer0.js
Fő belépési pont. HTTP szerver indítása, kérések feldolgozása, továbbítása a kontrollerekhez. -
dbrApiServer0.log
Naplófájl a szerver kimenetéhez és hibákhoz. -
package.json
Node.js projekt leíró (függőségek, szkriptek, metaadatok). -
startapi0
Shell szkript a szerver indításáhoznodemon-nal, naplózás átirányítása. -
z
Shell szkript a naplófájl tömörítéséhez. -
zdbConnect-backup.js
Segédprogram adatbázis kapcsolathoz és lekérdezésekhez (mentés vagy tesztelés). -
zdrb-test-api.php
Régi PHP szkript teszteléshez vagy integrációhoz.
apis/
Backend kontrollerek külső API-k vagy háttérrendszerek eléréséhez.
-
updateVABackendController.js
HTTPS POST kérések küldése a Voting Assistant (VA) státusz frissítéséhez. -
userByPartnerIdBackendController.js
Felhasználóval kapcsolatos háttér API hívások partner ID alapján. -
webAppBackendController.js
Szavazási kérések küldése a webalkalmazás backendjének. -
webAppPositionBackendController.js
Pozícióval kapcsolatos háttér API hívások. -
webAppVABackendController.js
VA-hoz kapcsolódó kérések küldése a webalkalmazás backendjének.
controllers/
Végpontokat kezelő kontrollerek.
-
activateId8Code.js
ID8 kódok aktiválása. -
activateId8CodeDetails5b9e3c2.js
Aktiválás további részletekkel. -
activateId8CodePartnerIdDetails.js
Aktiválás partner ID-vel és részletekkel. -
activateId8CodeWithDetails.js
Aktiválás részletesebb információkkal. -
getAllLast2Rows.js
Az utolsó két sor lekérdezése egy adatforrásból. -
getApps.js
Alkalmazások listájának lekérdezése. -
getLangsAll.js
Minden nyelvi rekord lekérdezése. -
storeLangs.js
Nyelvi rekordok mentése, frissítése. -
storeAppLangs.js
Alkalmazás-specifikus nyelvi rekordok mentése, frissítése. -
getPPRRP.js, getPRRP.js
Pozíció vagy publikus adatok lekérdezése redundanciával/újrapróbálkozással. -
getVASwitch.js, getVASwitchRRP.js
VA kapcsoló állapotának lekérdezése. -
updateVASwitch.js, updateVASwitchVPH.js
VA kapcsoló állapotának frissítése. -
updateVoteUTCs.js
Szavazatok frissítése UTC időbélyeggel. -
getPublicData.js, getPublicDataRRP.js
Publikus adatok lekérdezése, esetleg redundanciával/újrapróbálkozással.
middleware/
Újrahasznosítható logika kérésfeldolgozáshoz, validációhoz, segédfunkciókhoz.
-
activationEmailStore.js
Email/UDID párok mentése, frissítése, egyedi kódok generálása, naplózás. -
requestCounter.js
API kérés számláló. -
requestRetryCounter.js
API újrapróbálkozás számláló.
models/
Adatbázis-hozzáférési logika különböző táblákhoz.
-
dbQuery.js
Alapvető adatbázis lekérdezési funkciók. -
mDPartners.js
d_partnerstábla lekérdezése, frissítése (pl. VA státusz). -
mDAppLoginCodeLog.js
App login kódok, email/UDID párok naplózása. -
mApiLog.js
API naplózás, több napló táblát támogat. -
mDbrPP.js
Pozíció és publikus adatok lekérdezése. -
mLangs.js
Nyelvi rekordok kezelése, mentés, visszaállítás, alkalmazás-specifikus nyelvek. -
mAppBeApiRequests.js
Backend API kérések percenkénti követése. -
mDbrAppBeApiProcess.js
Backend API feldolgozási idők követése. -
mDbrAppBeApiRR.js
Backend API újrapróbálkozások követése.
storagecontroller/
Fájlok tárolása és olvasása.
- readJson.js
JSON fájlok olvasása a lemezről, publikus adatok kiszolgálásához.
API végpontok
Minden kontroller a controllers/ mappában egy vagy több végpontot szolgál ki.
Példa végpont dokumentáció:
POST /activateId8Code
- Leírás: Egy ID8 kód aktiválása felhasználó számára.
- Kérés törzse:
email(szöveg): Felhasználó email címeudid(szöveg): Eszköz UDIDpartnerId(szöveg, opcionális): Partner azonosító
- Válasz:
status(szöveg): Siker vagy hibacode(szöveg): Aktivációs kód
- Hibák:
400: Hiányzó paraméterek500: Belső szerverhiba
(Ismételd minden végpontra szükség szerint.)
Adatbázis modellek
A models/ mappa modellei kapszulázzák az összes adatbázis-hozzáférést.
-
mDPartners.js:
- Tábla:
d_partners - Műveletek: VA státusz, partner információk lekérdezése/frissítése.
- Tábla:
-
mDAppLoginCodeLog.js:
- Tábla:
d_app_login_code_log - Műveletek: App login kódok, email/UDID párok naplózása.
- Tábla:
-
mLangs.js:
- Táblák:
langs,langs_backup,app_langs - Műveletek: Nyelvi rekordok kezelése, mentés/visszaállítás, alkalmazás-specifikus nyelvek.
- Táblák:
-
mApiLog.js:
- Táblák:
api_log,api_log2, ... - Műveletek: API kérések és válaszok naplózása.
- Táblák:
(Ismételd minden modellre szükség szerint.)
Konfiguráció
.env példa
DB_HOST=localhost
DB_USER=felhasznalo
DB_PASS=jelszo
DB_NAME=adatbazis
API_KEY=kulcs_ide
LOG_PATH=./dbrApiServer0.log
-
DB_HOST, DB_USER, DB_PASS, DB_NAME:
Adatbázis kapcsolat beállításai. -
API_KEY:
Külső szolgáltatásokhoz szükséges kulcs. -
LOG_PATH:
A szerver naplófájljának elérési útja.
Indítás és telepítés
-
Függőségek telepítése:
npm install -
Környezet konfigurálása:
- Másold a
.env.example-t.env-re, és töltsd ki az értékeket.
- Másold a
-
Szerver indítása:
./startapi0 -
Napló tömörítése:
- Használd a
zszkriptet:./z
- Használd a
Példa adatfolyam
- Kliens kérést küld a
/activateId8Codevégpontra. - Szerver (
dbrApiServer0.js) továbbítja a kérést acontrollers/activateId8Code.js-nek. - Kontroller validálja a bemenetet, használja a
middleware/activationEmailStore.js-t az email/UDID tárolásához, majd hívja amodels/mDAppLoginCodeLog.js-t a naplózáshoz. - Szükség esetén a kontroller külső API-t hív az
apis/userByPartnerIdBackendController.js-en keresztül. - Válasz visszakerül a klienshez, az esemény naplózásra kerül a
models/mApiLog.js-ben.
Segéd- és régi szkriptek
-
zdbConnect-backup.js:
Önálló szkript adatbázis kapcsolathoz és lekérdezésekhez, teszteléshez vagy mentéshez. -
zdrb-test-api.php:
Régi PHP szkript API végpontok vagy adatbázis kapcsolat teszteléséhez.
Architektúra diagramok (Mermaid)
Projektstruktúra
Magas szintű architektúra
Kérésfolyam
Adatbázis kapcsolatok
API végpont routing
Külső API integráció
Hozzájárulás
- Forkold a repót.
- Hozz létre új branch-et a fejlesztéshez vagy hibajavításhoz.
- Küldj pull requestet a változások leírásával.
Licenc
Ez a projekt MIT licenc alatt érhető el.