Gå til indholdet

Paginering

Paginering deler en API-resultatliste op i sider, der hentes hver for sig. Sortering, fortsættelse og ændringer undervejs hører til API-kontrakten.

Også kendt somPaginationSideinddeling
API'er og datakontrakter

Paginering, på engelsk pagination, deler en resultatliste op i sider, der kan hentes hver for sig. En API behøver dermed ikke sende alle poster i ét svar. Sidestørrelse, sortering, fortsættelse og signalet om listens slutning hører til grænsefladens kontrakt.

I et fiktivt eksempel indeholder en liste sorteret efter identifikator først A, B, C, D. Den første side returnerer A og B. Før næste forespørgsel indsættes AA mellem de to. Springer en offsetmetode nu de første to aktuelle poster over, begynder næste side igen med B: En post optræder to gange. En entydig sortering fastholder ikke i sig selv datasættet uændret.

Fortsættelsen kræver klare regler

En cursor kan angive en fortsættelsesposition, for eksempel efter den senest returnerede post. API'en bestemmer den præcise betydning. En cursor garanterer ikke automatisk et uændret øjebliksbillede; sletninger og ændrede sorteringsværdier skal også håndteres.

I Googles tokenbaserede vejledning sendes fortsættelsesværdien uændret tilbage uden at blive afkodet af klienten. Filtre og andre udvælgelsesargumenter forbliver ens; kontrakten tillader en ændret sidestørrelse. Tokenet erstatter ikke en adgangskontrol. En kort eller tom side beviser heller ikke her, at listen er slut: Det afgøres af, at der ikke er et fortsættelsestoken. Byg klienten efter den anvendte API's dokumenterede kontrakt.

Kilder