Vai al contenuto

Paginazione

La paginazione divide i risultati di un’API in pagine recuperabili separatamente. Ordine, continuazione e modifiche durante la lettura rientrano nel contratto.

Noto anche comePagination
API e contratti dati

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