Skip to content

Paging

Wenn du eine API nach Daten fragst, kann sie sehr viele Ergebnisse liefern. Damit du nicht alle auf einmal bekommst (was langsam oder unübersichtlich wäre), gibt es „Paging“.

Section titled “Wenn du eine API nach Daten fragst, kann sie sehr viele Ergebnisse liefern. Damit du nicht alle auf einmal bekommst (was langsam oder unübersichtlich wäre), gibt es „Paging“.”

Stell dir Paging so vor wie Seiten in einem Buch:

Section titled “Stell dir Paging so vor wie Seiten in einem Buch:”
  • Seite 1: Einträge 1–25
  • Seite 2: Einträge 26–50
  • Seite 3: Einträge 51–75
    usw.

Du fragst also immer nur einen Ausschnitt der Daten ab – z. B. 25 Stück pro Seite.

Section titled “Du fragst also immer nur einen Ausschnitt der Daten ab – z. B. 25 Stück pro Seite.”

In deiner API gibt es verschiedene Varianten für Paging. Du kannst sie im JSON-Request unter dem Feld page angeben:

Section titled “In deiner API gibt es verschiedene Varianten für Paging. Du kannst sie im JSON-Request unter dem Feld page angeben:”
Terminal window
"page": {
"size": 25, // Wie viele Einträge pro Seite?
"number": 1, // Welche Seite willst du?
"offset": 0, // Ab welchem Eintrag soll angefangen werden?
"limit": 25 // Wie viele insgesamt maximal zurückgeben?
}

## 🟡 Variante 1: size und number – klassische Seitenzählung

Section titled “## 🟡 Variante 1: size und number – klassische Seitenzählung”
Terminal window
"page": {
"size": 25,
"number": 2
}

➡️ Das bedeutet: Gib mir die zweite Seite mit je 25 Einträgen (also Einträge 26–50).

Section titled “➡️ Das bedeutet: Gib mir die zweite Seite mit je 25 Einträgen (also Einträge 26–50).”

## 🟡 Variante 2: offset und limit – direkt sagen, wo es losgeht

Section titled “## 🟡 Variante 2: offset und limit – direkt sagen, wo es losgeht”
Terminal window
"page": {
"offset": 50,
"limit": 10
}

➡️ Das bedeutet: Gib mir 10 Einträge, beginnend ab Eintrag Nr. 51 (weil offset bei 0 beginnt).

Section titled “➡️ Das bedeutet: Gib mir 10 Einträge, beginnend ab Eintrag Nr. 51 (weil offset bei 0 beginnt).”

## ✅ Komplette Anfrage – Beispiel mit allem

Section titled “## ✅ Komplette Anfrage – Beispiel mit allem”
  • Die 2. Seite mit je 20 Einträgen
  • Nur Inhalte, die seit dem 1.1.2024 geändert wurden
  • In Deutsch
  • Sortiert nach „zuletzt geändert“ (neuste zuerst)
Terminal window
{
"page": {
"size": 20,
"number": 2
},
"filter": {
"attribute": {
"dct:modified": {
"in": {
"min": "2024-01-01T00:00:00Z"
}
}
}
},
"sort": "-dct:modified",
"language": "de",
"format": "json"
}
  • "size": 20 → 20 Einträge pro Seite
  • "number": 2 → Seite 2 (Einträge 21–40)
  • "dct:modified" → Filtert nach Änderungsdatum
  • "sort": "-dct:modified" → Sortierung: zuletzt geändert zuerst
  • "language" + "format" → Inhalte auf Deutsch, im JSON-Format

## 🧪 Bonus: Suche mit Paging kombinieren

Section titled “## 🧪 Bonus: Suche mit Paging kombinieren”
Terminal window
{
"page": {
"size": 10,
"number": 1
},
"filter": {
"search": "Klimawandel"
},
"sort": "+similarity"
}

➡️ Suche nach dem Begriff „Klimawandel“, sortiere nach Relevanz, gib Seite 1 mit 10 Einträgen zurück.

Section titled “➡️ Suche nach dem Begriff „Klimawandel“, sortiere nach Relevanz, gib Seite 1 mit 10 Einträgen zurück.”

## ❓Zusammenfassung: Wann was verwenden?

Section titled “## ❓Zusammenfassung: Wann was verwenden?”
Du willst…Dann verwende…
Seite 1 mit 25 Einträgen"page": { "size": 25, "number": 1 }
Einträge ab Nr. 50"page": { "offset": 50, "limit": 25 }
Inhalte sortiert nach Datum"sort": "-dct:modified"
Nach Text suchen"filter": { "search": "..." }
------------------------------------------------------------------------------------
Seite 1 mit 25 Einträgen"page": { "size": 25, "number": 1 }
Einträge ab Nr. 50"page": { "offset": 50, "limit": 25 }
Inhalte sortiert nach Datum"sort": "-dct:modified"
Nach Text suchen"filter": { "search": "..." }