Paginering
Hent lange lister side for side med limit og cursor.
Parametere
limit er hvor mange rader du får per side. Standard er 100, og maks er 1 000. Verdier over maks klemmes til maks, verdier under 1 blir 1, og tekst som ikke er et tall gir standarden.
cursor er verdien du fikk i meta.nesteCursor på forrige side. Utelat den for å hente første side. En cursor som ikke finnes, gir 400.
Svaret
Listen ligger i data, og sideinformasjonen ligger i meta. Eksempelet viser bare de to første radene.
meta.nesteCursor er cursoren til neste side, eller null når dette var siste side. meta.harFlere er true når det finnes flere rader. meta.grense er sidestørrelsen som ble brukt etter at limit er validert.
{
"ok": true,
"success": true,
"data": [{ "id": "abc123" }, { "id": "abc124" }],
"meta": {
"nesteCursor": "abc124",
"harFlere": true,
"grense": 100
}
}Hent alt
Send cursor=<meta.nesteCursor> i neste kall, og gjenta til meta.harFlere er false. På første kall er cursor tom.
Løkken under henter alle bilag. Den trenger curl og jq.
cursor=""
while true; do
svar=$(curl -s "https://finance.ketl.no/api/v1/bilag?cursor=$cursor" \
-H "x-api-key: sk_test_...")
echo "$svar" | jq -c '.data[]'
[ "$(echo "$svar" | jq -r '.meta.harFlere')" = "true" ] || break
cursor=$(echo "$svar" | jq -r '.meta.nesteCursor')
done