> For the complete documentation index, see [llms.txt](https://sponta.gitbook.io/orario/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sponta.gitbook.io/orario/funzioni-e-dettagli-tecnici/api-pubblica.md).

# Riferimento API pubbliche

Questi endpoint leggono la fotografia approvata e richiedono una sessione Bearer valida, sia per gli amministratori sia per gli editori. Il prefisso storico `/api/pubblico` identifica la versione pubblicata, non un accesso anonimo. Non espongono la bozza corrente. Gli esempi usano un server segnaposto e il pulsante per eseguire richieste è disabilitato.

La pagina `consultazione.html` usa lo stesso accesso dell'applicazione. Se manca una sessione valida, porta al login e ritorna alla consultazione dopo l'accesso. Le API rispondono con `401` se la sessione manca, è scaduta o è stata revocata. Le risposte di consultazione usano `Cache-Control: private, no-store`.

Per URL, limiti e integrazione, leggere [API e integrazioni](/orario/funzioni-e-dettagli-tecnici/api.md). La [specifica OpenAPI](https://github.com/lsponta/orario/tree/main/doc/guida/openapi/pubblico.json) è conservata nel repository.

## Flusso di consultazione

1. Accedere e inviare `Authorization: Bearer <token>` in ogni richiesta.
2. Leggere lo stato. Se `disponibile` è falso, mostrare che non esiste ancora un orario approvato.
3. Caricare calendario e anagrafiche della pubblicazione.
4. Leggere lezioni ed eventuale sostegno con i filtri desiderati.

Tra richieste successive un amministratore potrebbe ritirare o sostituire la pubblicazione. Il client deve gestire il 404 anche dopo uno stato disponibile; questi endpoint non offrono un identificativo di versione da fissare per tutta la sequenza.

## Stato della pubblicazione

{% openapi src="<https://openapi.gitbook.com/o/ALbUhaFl58GwP2GOsZFG/spec/orario-pubblico.json>" path="/api/pubblico/stato" method="get" %}
<https://openapi.gitbook.com/o/ALbUhaFl58GwP2GOsZFG/spec/orario-pubblico.json>
{% endopenapi %}

## Plessi referenziati

{% openapi src="<https://openapi.gitbook.com/o/ALbUhaFl58GwP2GOsZFG/spec/orario-pubblico.json>" path="/api/pubblico/plessi" method="get" %}
<https://openapi.gitbook.com/o/ALbUhaFl58GwP2GOsZFG/spec/orario-pubblico.json>
{% endopenapi %}

## Materie referenziate

{% openapi src="<https://openapi.gitbook.com/o/ALbUhaFl58GwP2GOsZFG/spec/orario-pubblico.json>" path="/api/pubblico/materie" method="get" %}
<https://openapi.gitbook.com/o/ALbUhaFl58GwP2GOsZFG/spec/orario-pubblico.json>
{% endopenapi %}

## Docenti referenziati

{% openapi src="<https://openapi.gitbook.com/o/ALbUhaFl58GwP2GOsZFG/spec/orario-pubblico.json>" path="/api/pubblico/docenti" method="get" %}
<https://openapi.gitbook.com/o/ALbUhaFl58GwP2GOsZFG/spec/orario-pubblico.json>
{% endopenapi %}

## Classi referenziate

{% openapi src="<https://openapi.gitbook.com/o/ALbUhaFl58GwP2GOsZFG/spec/orario-pubblico.json>" path="/api/pubblico/classi" method="get" %}
<https://openapi.gitbook.com/o/ALbUhaFl58GwP2GOsZFG/spec/orario-pubblico.json>
{% endopenapi %}

## Calendario approvato

{% openapi src="<https://openapi.gitbook.com/o/ALbUhaFl58GwP2GOsZFG/spec/orario-pubblico.json>" path="/api/pubblico/calendario" method="get" %}
<https://openapi.gitbook.com/o/ALbUhaFl58GwP2GOsZFG/spec/orario-pubblico.json>
{% endopenapi %}

## Lezioni pubblicate

{% openapi src="<https://openapi.gitbook.com/o/ALbUhaFl58GwP2GOsZFG/spec/orario-pubblico.json>" path="/api/pubblico/orario" method="get" %}
<https://openapi.gitbook.com/o/ALbUhaFl58GwP2GOsZFG/spec/orario-pubblico.json>
{% endopenapi %}

## Sostegno pubblicato

{% openapi src="<https://openapi.gitbook.com/o/ALbUhaFl58GwP2GOsZFG/spec/orario-pubblico.json>" path="/api/pubblico/sostegno" method="get" %}
<https://openapi.gitbook.com/o/ALbUhaFl58GwP2GOsZFG/spec/orario-pubblico.json>
{% endopenapi %}
