Sayfalama
REST API listelerinde page ve pageSize parametreleriyle sayfalar arasında gezinin; tüm sayfaları okumak için yanıttaki total ve hasNext alanlarını kullanın.
Listeleme işlemleri sonuçlarını sayfa sayfa döndürür. Sayfayı ve sayfa boyutunu sorgu parametreleriyle seçersiniz; yanıt da kaç öğe olduğunu ve başka sayfaların gelip gelmediğini bildirir.
Parametreler
Listeleme işlemlerinin çoğu şu parametreleri alır:
| Parametre | Tür | Varsayılan | İzin verilen değerler |
|---|---|---|---|
page | tam sayı | 1 | 1 veya daha büyük. Sayfalar 1’den başlayarak numaralandırılır. |
pageSize | tam sayı | 50 | Sayfa başına 1–200 öğe. |
Bu aralıkların dışındaki bir değer, VALIDATION_FAILED koduyla 422 Unprocessable Entity döndürür. Birkaç listeleme işlemi başka limitler kullanır; bunlar API referansı içinde listelenir. Birçok listeleme işlemi, metin araması için q gibi filtre ve sıralama parametrelerini de kabul eder. Her işlemin parametreleri API referansı içinde listelenir.
Yanıt biçimi
{
"data": [
{ "id": "3e1f0c9a8b7d4e6f9a2b1c0d8e7f6a5b", "name": "data-01" }
],
"meta": {
"page": 1,
"pageSize": 50,
"total": 128,
"hasNext": true
}
}| Alan | Anlamı |
|---|---|
data | Bu sayfadaki öğeler. Örnekte her öğe kısaltılmıştır. |
meta.page | Bu sayfanın numarası. |
meta.pageSize | Bu istekte uygulanan sayfa boyutu. |
meta.total | Tüm sayfalardaki öğelerin toplam sayısı. |
meta.hasNext | Bu sayfadan sonra başka öğeler varsa, yani page × pageSize değeri total değerinden küçükse true. |
Birkaç listeleme işlemi tüm öğelerini tek seferde, meta olmadan { "data": [...] } olarak döndürür ve sayfalama parametresi almaz. Örneğin bir projenin açık disk aktarımlarının listesi bu şekilde çalışır.
Tüm sayfaları okuma
meta.hasNext değeri false olana kadar artan page numaralarıyla sayfa isteyin:
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>: API’nin ana bilgisayar adı.<project-id>: projenin ID’si.
Sayfalar, istediğiniz anda listedeki konuma göre hesaplanır. Siz sayfaları okurken öğeler oluşturulur veya silinirse bir öğe komşu sayfaya kayabilir; bu nedenle onu kaçırabilir ya da iki kez okuyabilirsiniz. Tutarlı bir görünüm elde etmek için sayfaları hızlıca art arda okuyun ve yinelenenleri ayıklamak için öğelerin ID’lerini kullanın.