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.
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
Relaterede begreber
- APIEn API fastlægger, hvordan software kan bruge funktioner eller data fra anden software.
- RESTREST beskriver arkitekturregler for distribuerede grænseflader. Ressourcer, tilstandsløse forespørgsler og links er dele af tilgangen.
- OpenAPIOpenAPI beskriver HTTP-grænseflader maskinlæsbart med stier, parametre og svar. Beskrivelsen skal stemme overens med den kørende tjeneste.
- Server-Sent EventsServer-Sent Events sender tekstmeddelelser fra server til klient via HTTP, eksempelvis om en baggrundsopgaves fremdrift.
- ETagEt ETag identificerer en bestemt repræsentationsversion af en HTTP-ressource og understøtter betingede opslag eller ændringer.
- Cross-Origin Resource SharingCORS styrer browserens adgang til svar fra en anden origin. Det erstatter hverken login til API’et eller kontrol af rettigheder.
Dit projekt med ASES
Beskriv dit projekt for os. Vi vender tilbage med en første vurdering.