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=7314

Pagination alanları

AlanAçıklama
limitBu response için kullanılan sayfa büyüklüğü
after_idİstek cursor değeri
has_moreSonraki sayfa olup olmadığını gösterir
next_after_idSonraki 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.