Publika API:er
Öppna utvalda operationer för begäranden utan session och utan API-nyckel — för appens publika skärmar och anonyma integrationer.
Som standard svarar en apps GraphQL-endpoint bara den som identifierar sig: en session (från appens skärmar eller från den som bygger) eller en API-nyckel. Men det finns legitima fall av anonym åtkomst — ett kontaktformulär på webbplatsen, en publik skärm för att kolla status, en öppen katalog. För det finns publika API:er: operationer som du väljer att öppna för begäranden utan session och utan nyckel.
Reglaget är alltid ditt, API för API — och, i Tabell-API:erna, operation för operation. Ingenting blir publikt av misstag.
Vad en anonym begäran är
En begäran till appens endpoint (/api/graphql/gestao-clientes, eller
/api/graphql på den publicerade adressen) utan sessionscookie och utan headern
x-api-key. Det är vad appens publika skärmar gör — sidor som serveras före
inloggningen — och vilken extern klient som helst som du anropar utan
autentiseringsuppgifter.
Göra ett pipeline-API publikt
- Öppna API:et i byggaren.
- Slå på reglaget Publikt (utan session) i rubriken — tipset bekräftar: ”Åtkomligt utan session och utan API-nyckel — för appens publika skärmar.”
- Spara. API:et måste också vara Publicerat — ett utkast serveras aldrig till anonyma, publikt eller inte.

Göra operationer i ett Tabell-API publika
I ett Tabell-API är den publika åtkomsten finkornigare: per åtgärd. I Tabell-blocket har raden Publik åtkomst (utan session) ett reglage per åtgärd (Select, Insert, Update, Delete):
- Aktivera först åtgärden under Exponerade åtgärder — bara exponerade åtgärder kan vara publika; att stänga av en åtgärd stänger också av dess publika åtkomst.
- Slå bara på det publika reglaget för de operationer som de publika skärmarna behöver. ”Aktivera bara det som behövs” — det är husets regel.
- Spara.
Ett publikt formulär för intresseanmälan behöver till exempel Insert publikt — och
inget mer: listan, redigeringen och borttagningen stannar bakom sessionen.

Vad anonyma ser — och vad de inte ser
Endpointen hanterar anonyma begäranden med ett eget, mer åtstramat schema:
- Bara de publika API:erna finns. De övriga dyker inte ens upp via introspektion — inte ens namnen. En anonym kan inte lista det som appen har privat.
- Varje operation validerar åtkomsten. Att anropa en icke-publik operation i en anonym begäran ger felet ”Operation not available without a session” — även om man känner namnet.
- Utkast, aldrig. Bara publicerade API:er.
- Det finns ett tak för antal begäranden: 120 begäranden per minut, per app och
per ursprungsadress. Över taket är svaret
429med headernretry-aftersom säger hur länge man ska vänta. Det räcker med marginal för publika skärmar; det bromsar enkelt missbruk.

Nota
De anonyma körningarna loggas som alla andra — i appens Radar ser du vem som anropade vad, med åtkomstläget ”publikt”. Om du öppnar en operation för världen har du någonstans att bevaka den.
Anropa utan session och utan nyckel
En anonym begäran är en vanlig POST, utan autentiseringsheaders:
curl -X POST 'https://din-host/api/graphql/gestao-clientes' \
-H 'content-type: application/json' \
-d '{"query":"mutation ($nome: String!, $email: String!) { registarInteresse(nome: $nome, email: $email) }","variables":{"nome":"Ana Svensson","email":"ana@exempel.se"}}'
API:ets flik Dokumentation ger dig det exakta exemplet — bortse där från raden
med x-api-key, som bara gäller klienter med nyckel.

God praxis
| Praxis | Varför |
|---|---|
| Öppna så få operationer som möjligt | Varje publik operation är exponerad yta mot världen. |
| I tabellerna: föredra läsåtgärder — och räknade fält | Trädet Inkluderade fält gäller även för anonyma: det som inte är inkluderat kommer inte ut. |
| Publika skrivningar med obligatoriska argument och validering i pipelinen | Ett publikt Insert tar emot det som skickas till det — validera i Skript-steget eller med regler i modellen. |
| Bevaka i Radar | De publika körningarna loggas med åtkomstläget; onormala toppar syns där. |
Varför inte…?
- Jag slog på reglaget och den anonyma begäran misslyckas fortfarande. Kolla statusen: API:et måste vara Publicerat utöver Publikt — och, i en tabell, måste rätt åtgärd ha det publika reglaget påslaget.
- Varför ger webbläsaren ett fel när jag öppnar endpointen? Endpointens interaktiva miljö (GraphiQL) kräver en session på plattformen — det är ett verktyg för den som bygger. Data begär man med POST, som i exemplet ovan.
- Varför får jag
429? Du nådde adressens anonyma tak. Vänta tiden iretry-after. Om din integration behöver mer: använd en API-nyckel — en nyckels gränser är oberoende av det anonyma taket. - Respekterar en publik operation appanvändarnas behörigheter? En anonym är inte en användare — det finns inget användardataomfång att tillämpa. Exponera bara data i publika operationer som verkligen kan vara allas.