Paginierung

Blättern Sie mit den Parametern page und pageSize durch Listen der REST-API, und lesen Sie mit den Antwortfeldern total und hasNext jede Seite.

Listenvorgänge geben ihre Ergebnisse seitenweise zurück. Seite und Seitengröße wählen Sie mit Abfrageparametern, und die Antwort gibt an, wie viele Elemente es gibt und ob weitere Seiten folgen.

Parameter

Die meisten Listenvorgänge akzeptieren diese Parameter:

ParameterTypStandardwertZulässige Werte
pageinteger11 oder mehr. Seiten werden ab 1 nummeriert.
pageSizeinteger501–200 Elemente pro Seite.

Ein Wert außerhalb dieser Wertebereiche gibt 422 Unprocessable Entity mit dem Code VALIDATION_FAILED zurück. Einige Listenvorgänge verwenden andere Limits; die API-Referenz führt sie auf. Viele Listenvorgänge akzeptieren auch Filter- und Sortierparameter, z. B. q für eine Textsuche. Die API-Referenz führt die Parameter jedes Vorgangs auf.

Antwortformat

Eine Seite einer Liste
{
  "data": [
    { "id": "3e1f0c9a8b7d4e6f9a2b1c0d8e7f6a5b", "name": "data-01" }
  ],
  "meta": {
    "page": 1,
    "pageSize": 50,
    "total": 128,
    "hasNext": true
  }
}
FeldBedeutung
dataDie Elemente auf dieser Seite. Das Beispiel kürzt jedes Element.
meta.pageDie Nummer dieser Seite.
meta.pageSizeDie Seitengröße, die für diese Anfrage galt.
meta.totalDie Anzahl der Elemente auf allen Seiten zusammen.
meta.hasNexttrue, wenn auf diese Seite weitere Elemente folgen, also wenn page × pageSize kleiner als total ist.

Einige Listenvorgänge geben alle ihre Elemente auf einmal als { "data": [...] } ohne meta zurück und akzeptieren keine Paginierungsparameter. So funktioniert z. B. die Liste der offenen Volume-Übertragungen eines Projekts.

Alle Seiten lesen

Fordern Sie Seiten mit aufsteigenden Werten für page an, bis meta.hasNext false ist:

Alle Volumes eines Projekts auflisten
page=1
while :; do
  resp=$(curl -s "https://<api-host>/api/v1/scopes/<project-id>/storage/volumes?page=$page&pageSize=200" \
    -H "Authorization: Bearer $PC_TOKEN")
  echo "$resp" | jq -c '.data[]'
  [ "$(echo "$resp" | jq -r '.meta.hasNext')" = "true" ] || break
  page=$((page + 1))
done
  • <api-host>: der Hostname der API.
  • <project-id>: die ID des Projekts.

Seiten werden bei der Anfrage nach ihrer Position in der Liste berechnet. Wenn während des Lesens Elemente erstellt oder gelöscht werden, kann ein Element auf eine benachbarte Seite rutschen, sodass Sie es verpassen oder doppelt lesen. Für eine konsistente Sicht lesen Sie die Seiten in schneller Folge und entfernen Duplikate anhand der IDs der Elemente.

Auf dieser Seite