API
REST API + OpenAPI 3.1
A Lectura platform 9 backend-szervize OpenAPI 3.1 sémával dokumentált. Minden szervizhez közvetlen Swagger UI elérés és gépgenerált OpenAPI JSON tartozik.
Szerviz-katalógus
A frontend a Next.js rewrite-okon keresztül éri el a backend-szervizeket — a táblázatban azokat a path-prefixeket sorolom fel, amiket a kliensből hívhatsz. A Swagger UI-t és az OpenAPI specifikációt minden szerviz közvetlen portján is meg lehet nyitni (development environmentben).
Autentikáció, felhasználók, tenant-ek, API-kulcsok
POST /auth/login→/api/identity/auth/loginEmail + jelszó → access + refresh tokenPOST /auth/refresh→/api/identity/auth/refreshRefresh-token cseréje új access-tokenrePOST /auth/register→/api/identity/auth/registerÚj fiók létrehozása (alapból `reader` szerepkör)POST /auth/password-reset/request→/api/identity/auth/password-reset/requestReset-link kérése emailre (DEV-ben a logba)POST /auth/password-reset/confirm→/api/identity/auth/password-reset/confirmToken + új jelszóGET /users/me→/api/identity/users/meA bejelentkezett felhasználó profilja
Publikációk, manifesztációk, kollekciók, dashboard
GET /publications→/api/catalog/publicationsCursor-paginált lista, filter (status, search, tag, language)GET /publications/{id}→/api/catalog/publications/{id}Egy publikáció részleteiGET /publications/{id}/manifest.json→/api/catalog/publications/{id}/manifest.jsonReadium WebPub Manifest (proxy a manifest-svc-ből)GET /collections→/api/catalog/collectionsKollekciók (sorozatok, témakörök)
Readium WebPub Manifest előállítás (NATS-event-vezérelt)
GET /manifests/{tenant}/{job_id}/manifest.json→/api/manifest/manifests/{tenant}/{job_id}/manifest.jsonEgy konkrét manifest letöltése S3-ról
Exploded EPUB asszet streaming (XHTML, CSS, képek)
GET /r/{tenant}/{job_id}/{path}→/api/content/{tenant}/{job_id}/{path}Aláírt URL-en (HMAC) szolgált forrásGET /sign/{tenant}/{job_id}/{path}→/api/reader/sign/{tenant}/{job_id}/{path}Aláírt URL kibocsátása (JWT-vel)
Olvasási haladás (CFI + százalék) eszközök közti szinkron
GET /me/progress→/api/progress/me/progressA felhasználó összes haladás-rekordjaGET /me/progress/{id}→/api/progress/me/progress/{id}Egy publikáció pozíciójaPUT /me/progress/{id}→/api/progress/me/progress/{id}Pozíció upsert
Könyvjelzők és W3C Web Annotations
GET /me/bookmarks→/api/annotation/me/bookmarksAz összes könyvjelzőPUT /me/bookmarks/{id}→/api/annotation/me/bookmarks/{id}Könyvjelző upsert egy publikációraGET /me/annotations/{id}→/api/annotation/me/annotations/{id}Annotációk listája egy publikációraPOST /me/annotations/{id}→/api/annotation/me/annotations/{id}Új kiemelés / jegyzet
Olvasási események + aggregált statisztika
POST /events→/api/analytics/eventsOlvasási esemény (page_view, finish)GET /me/stats→/api/analytics/me/statsA felhasználó saját statisztikája
Feltöltés + S3 presigned URL kiosztás
POST /uploads→/api/ingestion/uploadsÚj feltöltés indításaPOST /uploads/{job_id}/complete→/api/ingestion/uploads/{job_id}/completeSHA256 digest visszajelzése
LMS-Gateway adapter — tanuló átküldés (backchannel + sessionId), eredmény-publish ASB-re, partner-formátumú katalógus
POST /launch/init→/api/integration/launch/initBackchannel session-init a Gateway felől (X-Api-Key, scope: integration:launch:provision)GET /launch/session/{sid}→/api/integration/launch/session/{sid}Reader-web consume — kontextus + Lectura JWT access_tokenPOST /launch/terminate/{sid}→/api/integration/launch/terminate/{sid}Szabályos kilépés vagy time-outPOST /events/result→/api/integration/events/resultBelső eredmény-beíró (ASB outbox-ba; X-Api-Key, scope: integration:result:publish)GET /catalog/epubs→/api/integration/catalog/epubsPage-based katalógus (q, catalogId, organizationId, sort, order; X-Api-Key, scope: integration:catalog:read)
Konvenciók
JSON-tartalom, RFC 9457 ProblemDetails hibák, X-Trace-Id propagáció minden válaszban. POST/PUT idempotency-key fejléccel. Cursor-paginálás (?cursor=...&limit=...) ahol értelmes. Részletes konvenciókat a /docs/getting-started adja meg.