Paginazione
La paginazione divide i risultati di un’API in pagine recuperabili separatamente. Ordine, continuazione e modifiche durante la lettura rientrano nel contratto.
La paginazione divide un elenco di risultati in pagine recuperabili separatamente. Un’API non deve quindi trasmettere tutti i record in una sola risposta. Dimensione della pagina, ordinamento, continuazione e modo di riconoscere la fine dell’elenco fanno parte del contratto dell’interfaccia.
In un esempio fittizio, un elenco ordinato per identificativo contiene inizialmente A, B, C, D. La prima pagina restituisce A e B. Prima della richiesta successiva viene inserito AA fra queste due voci. Se un metodo basato su offset salta ora i primi due record attuali, la pagina successiva riparte da B: un record compare due volte. Un ordinamento univoco non rende da solo immutabile l’insieme dei dati.
La continuazione richiede regole esplicite
Un cursore può indicare una posizione di ripresa, per esempio dopo l’ultimo record restituito. Il significato esatto è definito dall’API. Un cursore non garantisce automaticamente un’istantanea invariata; occorre considerare anche eliminazioni e modifiche dei valori di ordinamento.
Nelle indicazioni di Google basate su token, il valore di continuazione viene restituito invariato, senza che il client lo decodifichi. Filtri e altri argomenti di selezione restano uguali; questo contratto permette di cambiare la dimensione della pagina. Il token non sostituisce il controllo degli accessi. Neppure una pagina breve o vuota dimostra qui la fine dell’elenco: a indicarla è l’assenza del token di continuazione. Sviluppi il client secondo il contratto documentato dell’API utilizzata.
Fonti
Termini correlati
- APIUn’API definisce come un programma può usare funzioni o dati messi a disposizione da un altro programma.
- RESTREST definisce regole di architettura per interfacce distribuite. Risorse, richieste senza stato e collegamenti fanno parte dell’approccio.
- OpenAPIOpenAPI descrive interfacce HTTP in forma leggibile dalle macchine, con percorsi, parametri e risposte. La descrizione deve corrispondere al servizio.
- Server-Sent EventsSSE trasmette notifiche testuali dal server al client via HTTP, per esempio sull’avanzamento di un lavoro in background.
- ETagUn ETag identifica una specifica versione della rappresentazione di una risorsa HTTP e consente letture o modifiche condizionali.
- Cross-Origin Resource SharingCORS regola l’accesso del browser alle risposte di un’altra origine. Non sostituisce l’autenticazione né il controllo delle autorizzazioni nell’API.
Il vostro progetto con ASES
Descriveteci il vostro progetto. Vi ricontatteremo con una prima valutazione.