Zum Inhalt springen
P
Zurück zu den Guides

Paginierung

Listen-Endpunkte mit opaken Cursorn durchblättern — nie mit Offsets.

Immer cursorbasiert

Jeder Listen-Endpunkt paginiert mit einem opaken Cursor, nie mit einem numerischen Offset. Cursor sind stabil unter gleichzeitigen Schreibvorgängen, sodass Sie beim Blättern nie Zeilen überspringen oder wiederholen — der Kompromiss, den Seitenzahl-Paginierung nicht eingehen kann.

Übergeben Sie ein optionales limit (Seitengröße) und für jede Seite nach der ersten den cursor, den die vorherige Antwort zurückgegeben hat:

curl "https://api.example.com/api/v1/products?limit=50" \
  -H "X-API-Key: pie_live_..."

Die Antwort lesen

Listenantworten kapseln die Zeilen in items und legen ein nextCursor offen. Ist nextCursor gleich null, haben Sie die letzte Seite erreicht:

{
  "items": [ /* … bis zu `limit` Datensätze … */ ],
  "nextCursor": "eyJpZCI6IjAx..."
}

Durch alle Datensätze blättern

Folgen Sie dem Cursor, bis er null zurückgibt:

let cursor = null;
do {
  const url = new URL("https://api.example.com/api/v1/products");
  url.searchParams.set("limit", "100");
  if (cursor) url.searchParams.set("cursor", cursor);

  const res = await fetch(url, { headers: { "X-API-Key": key } });
  const page = await res.json();

  for (const product of page.items) handle(product);
  cursor = page.nextCursor;
} while (cursor);

Behandeln Sie den Cursor als opak — dekodieren, konstruieren oder speichern Sie ihn nicht über die nächste Anfrage hinaus. Seine Kodierung ist ein internes Detail und kann sich ohne Vorankündigung ändern.