2.4 KiB
2.4 KiB
Krok 03 - API vrstva a Error Handling
Kontext projektu
Frontend komunikuje s backendom výhradne cez jeden endpoint ajax.php pomocou POST požiadaviek s JSON payloadom.
Pred implementáciou si preštuduj
docs/architecture.md- Sekcia 9 (AJAX API).
Cieľ
Vytvoriť základný API router public/ajax.php a implementovať jednotný systém pre spracovanie chýb a formátovanie odpovedí.
Požadované zmeny
- Vytvorenie súboru
public/ajax.php. - Implementácia logiky pre:
- Načítanie JSON vstupu z
php://input. - Overenie prítomnosti hlavičky
X-User-ID. - Základný router (switch podľa poľa
action). - Jednotný formát úspešnej odpovede:
{"success": true, "data": {...}}. - Jednotný formát chybovej odpovede:
{"success": false, "error": {"code": "...", "message": "..."}}.
- Načítanie JSON vstupu z
- Globálny
try-catchblok na zachytávanie výnimiek a ich transformáciu do JSON odpovede. - Nastavenie správnych HTTP hlavičiek (
Content-Type: application/json).
Implementačné pravidlá
- Nepoužívaj frameworky pre routing.
- Každá odpoveď musí mať nastavený status kód (typicky 200 pre aplikačné chyby v JSONe, alebo 4xx/5xx pri systémových chybách).
- Zabezpeč, aby PHP warningy a errory neboli vypisované priamo do výstupu (použi
display_errors = 0v produkčnom nastavení a vlastný error handler).
Súbory ktoré je potrebné vytvoriť
public/ajax.php
Súbory ktoré je potrebné upraviť
Žiadne.
API a dátové štruktúry
Vstupné dáta (JSON):
{
"action": "string",
"project_id": "string",
"payload": {}
}
Frontend požiadavky
Nerelevantné (v tomto kroku len backend).
Backend požiadavky
- PHP 8.2.
Testovací scenár
- Pošli POST požiadavku na
ajax.phps prázdnym telom. Mal by si dostať JSON chybu. - Pošli POST požiadavku s neexistujúcou akciou. Mal by si dostať JSON chybu
UNKNOWN_ACTION. - Pošli validnú požiadavku (zatiaľ môžeš implementovať akciu
ping) a over formátsuccess: true.
Definition of Done
ajax.phpfunguje ako centrálny router.- Odpovede majú jednotnú štruktúru.
- Chybové stavy sú ošetrené a vracajú JSON.
Obmedzenia
- Žiadne HTML vo výstupe z
ajax.php.
Výstup
- zoznam vytvorených súborov
- zoznam upravených súborov
- stručné zhrnutie vykonaných zmien
- prípadné otvorené problémy