API

Rute API

Toate endpoint-urile Nitro sunt file-based în server/api/. Convenția de nume determină metoda HTTP și parametrul din path ([slug], [id]).

Convenții

  • *.get.ts → GET, *.post.ts → POST, *.put.ts → PUT, etc.
  • Parametri dinamici: foldere [slug], [id]
  • Răspunsuri JSON; erori via createError({ statusCode, message })
  • Auth: cookie JWT — niveluri public / user / staff / admin

Home & discovery

MethodPathAuth
GET/api/home

Payload pagină principală (featured, autori, tag-uri)

Public
GET/api/home/for-you

Recomandări personalizate pentru utilizator autentificat

User
GET/api/poems/random

Poezie aleatoare

Public
GET/api/authors/random

Autor aleator

Public

Poems

MethodPathAuth
GET/api/poems

Listă poezii cu filtre, paginare, căutare

Public
POST/api/poems

Creare poezie (staff)

Staff
GET/api/poems/by-ids

Poezii după ID-uri

Public
GET/api/poems/:slug

Detalii poezie

Public
PUT/api/poems/:slug

Actualizare metadata poezie

Staff
DELETE/api/poems/:slug

Ștergere poezie

Staff
GET/api/poems/:slug/insight

Insight contextual (AI opțional)

Public
PUT/api/poems/:slug/content

Actualizare conținut poezie

Staff
PUT/api/poems/:slug/carousel-font

Setări font carousel per poezie

Staff

Authors

MethodPathAuth
GET/api/authors

Listă autori

Public
POST/api/authors

Creare autor

Staff
GET/api/authors/:slug

Profil autor

Public
PUT/api/authors/:slug

Actualizare autor

Staff
DELETE/api/authors/:slug

Ștergere autor

Staff
POST/api/authors/:slug/portrait

Upload portret autor

Staff

Tags

MethodPathAuth
GET/api/tags

Listă tag-uri

Public
POST/api/tags

Creare tag

Staff

Auth (public)

MethodPathAuth
POST/api/auth/login

Login admin (sesiune staff)

Public
GET/api/auth/me

Profil sesiune curentă

User
POST/api/auth/logout

Logout

User
GET/api/auth/google-config

Client ID Google (runtime)

Public
GET/api/auth/google

Redirect OAuth Google

Public
GET/api/auth/google/callback

Callback OAuth Google

Public

User account

MethodPathAuth
POST/api/user/register

Înregistrare email/parolă

Public
POST/api/user/login

Login utilizator

Public
POST/api/user/logout

Logout utilizator

User
GET/api/user/me

Profil utilizator

User
PATCH/api/user/me/profile

Actualizare profil

User
PATCH/api/user/me/password

Schimbare parolă

User
PATCH/api/user/me/preferences

Preferințe cititor (font, temă)

User
PATCH/api/user/me/poet

Activează profil poet

User
DELETE/api/user/me

Ștergere cont

User
GET/api/user/favorites

Favorite utilizator

User
POST/api/user/favorites/:poemId

Toggle favorit

User
GET/api/user/poems

Poezii trimise de poet

User
POST/api/user/poems

Trimite poezie nouă

User
POST/api/user/poems/claim

Revendică poezie importată

User
DELETE/api/user/poems/:slug

Șterge poezie proprie

User
GET/api/user/drafts

Draft-uri Write

User
POST/api/user/drafts

Salvează draft

User
GET/api/user/drafts/:id

Citește draft

User
PUT/api/user/drafts/:id

Actualizează draft

User
DELETE/api/user/drafts/:id

Șterge draft

User
GET/api/user/insta-posts

Postări carousel salvate

User
POST/api/user/insta-posts

Salvează postare carousel

User
GET/api/user/insta-posts/:id

Detalii postare

User
PUT/api/user/insta-posts/:id

Actualizează postare

User
DELETE/api/user/insta-posts/:id

Șterge postare

User

Write workspace

MethodPathAuth
GET/api/words

Căutare lexicon românesc (rime, silabe)

Public
GET/api/word-definition

Definiție cuvânt (cache + surse externe)

Public

Site settings

MethodPathAuth
GET/api/site/settings

Setări publice site

Public
PUT/api/site/settings

Actualizează setări

Admin

Admin & import

MethodPathAuth
GET/api/admin/users

Listă utilizatori

Admin
PATCH/api/admin/users/:id/role

Schimbă rol utilizator

Admin
DELETE/api/admin/users/:id

Șterge utilizator

Admin
POST/api/admin/enrich-poems

Enrichment date poezii (AI)

Admin
POST/api/import/poetrydb

Import PoetryDB

Admin
POST/api/import/romanian

Import corpus românesc

Admin
POST/api/import/bulk

Import bulk CSV/JSON

Admin