API — základ
Base & autentizace
Sekce “Base & autentizace”- Base:
https://api.contenta.cz/api/v1/public/sites/<slug> - Hlavička:
X-Site-Key: <apiKey>— povinná u všech public endpointů. - Envelope:
{ data: T }, u stránkovaných{ data: T[], meta: { nextCursor, hasMore } }.
const res = await fetch(`${BASE}/posts`, { headers: { 'X-Site-Key': KEY } });const { data, meta } = await res.json();Co je X-Site-Key (a co není)
Sekce “Co je X-Site-Key (a co není)”Je to per-web read/form klíč, ne admin secret. Opravňuje pouze ke čtení publikovaného obsahu daného webu a k odeslání formulářů/komentářů. Žádný zápis ani přístup do adminu.
- Read data ber přednostně při buildu (
SITE_KEYzůstane mimo bundle). - Pro client-side komentáře/formuláře je OK klíč vystavit v prohlížeči přes
PUBLIC_SITE_KEY— leak zpřístupní jen to, co je beztak veřejné. Zneplatnění:POST /admin/sites/:slug/rotate-key.
Stránkování
Sekce “Stránkování”Seznamy vrací meta.nextCursor a meta.hasMore. Další stránku načteš přes ?cursor=<nextCursor>.
Chyby
Sekce “Chyby”Standardizované (RFC 7807) — { type, title, status, detail, instance }. Build-time klient by měl mít
graceful fallback (na chybu vrátit prázdno), ať build nespadne.
Plná reference (Swagger / OpenAPI)
Sekce “Plná reference (Swagger / OpenAPI)”Živá, auto-generovaná OpenAPI reference jen pro public API (interaktivní „try it out“):
- Swagger UI: api.contenta.cz/docs/public
- OpenAPI JSON: api.contenta.cz/docs/public/openapi.json
Obsahuje pouze /public/* endpointy (read & form) s autentizací přes X-Site-Key. Admin endpointy
jsou session-auth a nejsou určené pro integraci. Tato dokumentace je ruční průvodce — reference se bere
ze Swaggeru, aby nezastarala.