Files
WebWizard/docs/prompts/step03.md
2026-06-12 12:54:10 +02:00

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

  1. Vytvorenie súboru public/ajax.php.
  2. 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": "..."}}.
  3. Globálny try-catch blok na zachytávanie výnimiek a ich transformáciu do JSON odpovede.
  4. 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 = 0 v 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

  1. Pošli POST požiadavku na ajax.php s prázdnym telom. Mal by si dostať JSON chybu.
  2. Pošli POST požiadavku s neexistujúcou akciou. Mal by si dostať JSON chybu UNKNOWN_ACTION.
  3. Pošli validnú požiadavku (zatiaľ môžeš implementovať akciu ping) a over formát success: true.

Definition of Done

  • ajax.php funguje 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