Pagination
Liste endpointleri büyük veri setlerini tek response içerisinde döndürmek yerine limit ve after_id ile sayfalar halinde okumanızı sağlar.
İlk sayfayı nasıl alırım?
İlk çağrıda after_id göndermeyin. İhtiyacınız olan sayfa büyüklüğünü limit ile belirtin.
GET /products?limit=50İkinci sayfaya nasıl geçerim?
Response içerisindeki meta.pagination.next_after_id değerini okuyun. Sonraki istekte bu değeri after_id query parametresi olarak gönderin.
GET /products?limit=50&after_id=7314Pagination alanları
| Alan | Açıklama |
|---|---|
| limit | Bu response için kullanılan sayfa büyüklüğü |
| after_id | İstek cursor değeri |
| has_more | Sonraki sayfa olup olmadığını gösterir |
| next_after_id | Sonraki istekte kullanılacak cursor |
Tam örnek akış
1. GET /products?limit=50
2. Response: next_after_id = 7314
3. GET /products?limit=50&after_id=7314
4. Response: next_after_id = 7428
5. GET /products?limit=50&after_id=7428
6. has_more=false → işlem tamamlandıÖnemli: cursor'u kendiniz hesaplamayın
Bir sonraki after_id değerini her zaman API response'undaki next_after_id alanından alın. Client tarafında +1 gibi matematiksel cursor üretmeyin.
Orders farklı olabilir
Katalog listeleri artan ID yönünde ilerlerken Orders endpointi yeni siparişlerden eski siparişlere doğru azalan ID cursor davranışı kullanabilir.
Bu fark nedeniyle her endpoint için API'nin döndürdüğü next_after_id değerini kaynak kabul edin.
Uzun senkronizasyon
- Son başarılı next_after_id değerini persist edebilirsiniz.
- Process restart sonrası kaldığınız cursor'dan devam edebilirsiniz.
- Aynı pagination turunda kullandığınız filtreleri değiştirmeyin.
- has_more=false olduğunda tarama tamamlanmıştır.