Manuale · 9

Convenzioni

Percorso base

Tutti gli endpoint si trovano sotto /api/v1 (eccezioni: /healthz e la chiamata pubblica dei template documento).

GET /tables/{id}/records (e l’esportazione CSV) riconoscono gli stessi parametri di query:

Parametro Significato
limit dimensione della pagina, predefinito 100, massimo 1000
offset scostamento
sort colonne separate da virgola, - davanti = decrescente, ad es. sort=name,-creato_il
where albero di filtro JSON, ad es. {"and":[{"col":"status","op":"eq","val":"attivo"}]}
fields restituisci solo queste colonne, separate da virgola, ad es. fields=slug,modificato – anche per GET /tables/{id}/records/{pk}. Solo colonne normali: il database legge solo quelle, i campi calcolati non vengono valutati. Nome sconosciuto → 400 invalid_fields.
group_by colonne separate da virgola, la più esterna per prima
summary mappa JSON {"colonna":"SUM"} (SUM/COUNT/AVG/MIN/MAX)
view ID di una vista salvata – il suo filtro/ordinamento/raggruppamento/riepilogo vale come predefinito, salvo sovrascrittura esplicita tramite i parametri sopra

Forma della risposta: { "records": [...], "pageInfo": { "limit", "offset", "totalRows", "hasMore" }, "summary": {...} }.

Forma della risposta in caso di errore

{ "error": { "code": "codice_breve", "message": "descrizione leggibile per l'utente" } }