--- name: nuxt-api-endpoint description: Tworzenie endpointów API w tym projekcie Nuxt zgodnie z flow schema -> server/api -> domain use-case -> repository -> DTO. Użyj, gdy dodajesz lub modyfikujesz endpoint HTTP. --- # Nuxt API Endpoint ## Kiedy używać - Gdy dodajesz nowy endpoint w `server/api/*`. - Gdy refaktorujesz endpoint i chcesz zachować zgodność z architekturą warstwową. ## Zasady projektu - Przeczytaj i stosuj: `.cursor/remember.md` oraz `content/docs/ARCHITECTURE.md`. - `server/api/*` to tylko kontroler HTTP (parse -> validate -> use-case -> DTO). - Logika biznesowa należy do `domain/*`. ## Procedura 1. Dodaj/rozszerz schemat Valibot w `shared/schemas/*`. 2. Upewnij się, że typy DTO są dostępne przez `shared/types/*`. 3. Zaimplementuj use-case w `domain/*` (bez zależności od UI). 4. W kontrolerze `server/api/*`: - odczytaj input (`getQuery`/`readBody`), - zwaliduj przez Valibot, - wywołaj use-case, - zwróć dane w standardowym formacie API. 5. Jeśli endpoint dotyka DB, użyj repository `server/repositories/*`. 6. Dodaj/aktualizuj `app/composables/resources/*` jako jedyne miejsce wywołań API po stronie UI. ## Walidacja - Lint i typecheck dla zmienionych plików. - Sprawdź przypadek `422 VALIDATION_ERROR` (mapowanie `issues[]`). - Sprawdź uprawnienia i błędy domenowe (`DomainError` -> status/code/message).