Paginierung
Paginierung teilt eine API-Ergebnisliste in abrufbare Seiten. Fortsetzung, Sortierung und Änderungen während des Abrufs gehören zum API-Vertrag.
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
Verwandte Begriffe
- APIEine API legt fest, wie Software Funktionen oder Daten anderer Software nutzen kann.
- RESTREST beschreibt Regeln für verteilte Schnittstellen. Ressourcen, zustandslose Anfragen und Verknüpfungen gehören zum Architekturansatz.
- OpenAPIOpenAPI beschreibt HTTP-Schnittstellen maschinenlesbar: mit Pfaden, Parametern und Antworten. Beschreibung und laufende Umsetzung müssen übereinstimmen.
- Server-Sent EventsServer-Sent Events übertragen über eine HTTP-Verbindung Textmeldungen vom Server zum Client, etwa zum Fortschritt eines Hintergrundauftrags.
- Entity TagEin ETag kennzeichnet eine bestimmte Darstellungsversion einer HTTP-Ressource und ermöglicht bedingte Abrufe oder Änderungen.
- Cross-Origin Resource SharingCORS steuert im Browser die Freigabe von Antworten über Origin-Grenzen. Es ersetzt weder die Anmeldung noch die Berechtigungsprüfung einer API.
Ihr Vorhaben mit ASES
Beschreiben Sie uns Ihr Vorhaben. Wir melden uns mit einer ersten Einschätzung.