Salta al contingut

Desenvolupadors

Paginació

Paginació per cursor: limit, cursor i meta.next_cursor, amb un exemple de bucle complet.

Els llistats (GET /spaces i GET /bookings) fan servir paginació per cursor. A diferència de la paginació per pàgines, un cursor continua sent estable encara que es creïn o cancel·lin reserves mentre recorres la llista.

Paràmetres

Paràmetre Descripció
limit Elements per pàgina, d'1 a 200. Per defecte 50.
cursor Cursor opac que ha retornat la pàgina anterior. Omet-lo per a la primera pàgina.

Resposta

{
  "data": [ { "id": 1, "...": "..." } ],
  "meta": { "next_cursor": "WzE3OTI2OTIwMDAsNTBd" }
}
  • meta.next_cursor és el cursor de la pàgina següent.
  • A l'última pàgina, next_cursor és null.
  • Un cursor és un valor opac (el de la resposta de dalt és només il·lustratiu: no n'escriguis mai un a mà ni el reutilitzis entre llistats): no l'interpretis ni el construeixis. Només és vàlid amb els mateixos filtres amb què es va obtenir.
  • Un cursor mal format o alterat retorna 422 validation_failed, amb el camp cursor a details.

Exemple amb curl

# Primera pàgina
curl -s "$PRANARP_URL/api/v1/bookings?limit=100&from=2026-10-01T00:00:00%2B02:00" \
  -H "Authorization: Bearer $PCK_TOKEN"

# Pàgina següent: passa el next_cursor rebut
curl -s "$PRANARP_URL/api/v1/bookings?limit=100&from=2026-10-01T00:00:00%2B02:00&cursor=<next_cursor>" \
  -H "Authorization: Bearer $PCK_TOKEN"

Recórrer totes les pàgines

Un bucle complet en shell (requereix jq):

cursor=""
while :; do
  url="$PRANARP_URL/api/v1/bookings?limit=200"
  [ -n "$cursor" ] && url="$url&cursor=$cursor"

  page=$(curl -s "$url" -H "Authorization: Bearer $PCK_TOKEN")
  echo "$page" | jq -c '.data[]'

  cursor=$(echo "$page" | jq -r '.meta.next_cursor // empty')
  [ -z "$cursor" ] && break
done

Respecta els límits de ritme: cada pàgina compta com una petició. Si has de mantenir el teu sistema al dia, és més eficient subscriure't als webhooks que recórrer tot el llistat periòdicament.