Liste döndüren tüm uç noktalar (ör. Araçlar, Müşteriler) aynı limit/offset deseniyle sayfalanır.
| Parametre | Varsayılan | Maksimum | Açıklama |
|---|---|---|---|
limit | 25 | 100 | Bir istekte döndürülecek maksimum kayıt sayısı. 100'ün üzerinde bir değer istenirse sessizce 100'e sabitlenir (hata dönmez). |
offset | 0 | — | Atlanacak kayıt sayısı — bir sonraki sayfa için önceki isteğin limit değerini offset'e ekleyin. |
meta AlanıHer liste yanıtı limit/offset/count değerlerini HER ZAMAN döner. Ayrıca, uç nokta toplam kayıt sayısını maliyetsiz hesaplayabiliyorsa (Araçlar ve Müşteriler uç noktaları buna dahildir) bir de meta.pagination nesnesi eklenir:
{
"meta": {
"limit": 25, "offset": 0, "count": 25,
"pagination": { "page": 1, "per_page": 25, "total": 143, "total_pages": 6 }
}
}
meta.pagination yoksa (bazı uç noktalarda geçici olarak eksik olabilir), aşağıdaki "son sayfa" kuralını kullanın: dönen count, istediğiniz limit'ten küçükse son sayfadasınız demektir.
<?php
$all = [];
$limit = 100;
$offset = 0;
do {
$ch = curl_init("https://otomovena.com/api/v1/vehicles.php?limit={$limit}&offset={$offset}");
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer otv_live_xxxxx...']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$page = json_decode(curl_exec($ch), true);
$all = array_merge($all, $page['data']);
$offset += $limit;
} while (($page['meta']['count'] ?? 0) === $limit);
// $all artık galerinizin tüm araçlarını içeriyor.
Hayır — büyük tablolarda ayrı bir COUNT(*) sorgusu her istekte ekstra maliyet yaratır. Bu yüzden meta.pagination.total yalnızca maliyeti düşük olan uç noktalarda gönderilir. Yoksa yukarıdaki "son sayfa" kuralını kullanın — istediğiniz toplam sayı önemliyse tüm sayfaları çekip kendi tarafınızda saymanız yeterlidir.