Paginering
Paginering delar upp API-resultat i sidor som hämtas var för sig. Sortering, fortsättning och ändringar under hämtningen hör till API-kontraktet.
Paginering delar upp en resultatlista i sidor som kan hämtas var för sig. Ett API behöver då inte skicka alla poster i ett enda svar. Sidstorlek, sortering, fortsättning och hur listans slut känns igen hör till gränssnittets kontrakt.
I ett fiktivt exempel innehåller en lista sorterad efter identifierare först A, B, C, D. Den första sidan returnerar A och B. Före nästa begäran läggs AA in mellan dessa två. Om en offsetmetod då hoppar över de två första aktuella posterna börjar nästa sida åter med B: En post visas två gånger. En entydig sortering låser inte i sig datamängden.
Fortsättningen behöver tydliga regler
En markör kan ange en fortsättningsposition, exempelvis efter den senast returnerade posten. API:et bestämmer den exakta betydelsen. En markör garanterar inte automatiskt en oförändrad ögonblicksbild; även borttagningar och ändrade sorteringsvärden måste hanteras.
I Googles tokenbaserade riktlinje skickas fortsättningsvärdet tillbaka oförändrat, utan att klienten avkodar det. Filter och andra urvalsargument förblir desamma; kontraktet tillåter en ändrad sidstorlek. Tokenvärdet ersätter inte någon åtkomstkontroll. En kort eller tom sida bevisar inte heller här att listan är slut: Det avgörs av att en fortsättningstoken saknas. Bygg klienten efter det använda API:ets dokumenterade kontrakt.
Källor
Relaterade begrepp
- APIEtt API anger hur programvara kan använda funktioner eller data som annan programvara erbjuder.
- RESTREST beskriver arkitekturregler för distribuerade gränssnitt. Resurser, tillståndslösa anrop och länkar ingår i arbetssättet.
- OpenAPIOpenAPI beskriver HTTP-gränssnitt maskinläsbart med sökvägar, parametrar och svar. Beskrivningen ska stämma med tjänsten som körs.
- Server-Sent EventsServer-Sent Events skickar textmeddelanden från server till klient via HTTP, exempelvis om ett bakgrundsjobbs förlopp.
- ETagEn ETag identifierar en viss representationsversion av en HTTP-resurs och stöder villkorade hämtningar eller ändringar.
- Cross-Origin Resource SharingCORS styr webbläsarens åtkomst till svar från en annan origin. Det ersätter varken API-inloggning eller behörighetskontroll.
Ditt projekt med ASES
Beskriv ditt projekt för oss. Vi hör av oss med en första bedömning.