Zum Inhalt springen

Paginierung

Paginierung teilt eine API-Ergebnisliste in abrufbare Seiten. Fortsetzung, Sortierung und Änderungen während des Abrufs gehören zum API-Vertrag.

Auch bekannt alsPagination
API und Datenverträge

Paginierung, auch Pagination, teilt eine Ergebnisliste in mehrere abrufbare Seiten. Eine API muss dadurch nicht alle Datensätze in einer einzigen Antwort übertragen. Seitengröße, Sortierung, Fortsetzung und das erkennbare Listenende gehören zum Vertrag der Schnittstelle.

Im fiktiven Beispiel liefert eine nach Kennung sortierte Liste zunächst A, B, C, D. Die erste Seite enthält A und B. Vor dem nächsten Abruf kommt AA zwischen diese beiden Einträge. Überspringt ein Offset-Verfahren nun die ersten zwei aktuellen Einträge, beginnt die nächste Seite wieder bei B: Ein Datensatz erscheint doppelt. Eine eindeutige Sortierung allein friert den Datenbestand nicht ein.

Die Fortsetzung benötigt klare Regeln

Ein Cursor kann eine Fortsetzungsposition kennzeichnen, etwa hinter dem zuletzt gelieferten Datensatz. Seine genaue Bedeutung bestimmt die API. Ein solcher Cursor garantiert nicht automatisch eine unveränderte Momentaufnahme; auch Löschungen und geänderte Sortierwerte müssen berücksichtigt werden.

Bei dem von Google beschriebenen Token-Verfahren gibt der Client den Fortsetzungswert unverändert zurück, statt ihn selbst zu zerlegen. Filter und sonstige Auswahlargumente bleiben dabei gleich; die Seitengröße kann nach diesem Vertrag geändert werden. Das Token ersetzt keine Zugriffsprüfung. Auch eine kürzere oder leere Seite beweist dort noch kein Listenende: Maßgeblich ist das fehlende Fortsetzungstoken. Implementieren Sie Clients nach dem dokumentierten Vertrag der jeweiligen API.

Quellen