Hoppa till innehållet

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.

Även känt somPaginationSidindelning
API:er och datakontrakt

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