Veri ve Entegrasyon Tasarımı / Uygulama ve satın alma rehberi

API Sayfalama: Cursor Kullanmak Veri Kaybını Kendiliğinden Önlemez

Bir API’den bütün siparişleri alırken bazı satırların iki kez, bazılarının hiç gelmemesi yalnızca bağlantı hatası değildir. Sayfalama sırasında veri değişiyorsa sonuçların hangi kurala göre devam ettiği açık olmalıdır.

Önce listenin neyi temsil ettiğini seçin

Kullanıcının canlı sipariş listesini gezinmesiyle ay sonundaki bütün kayıtları dışa aktarması farklı ihtiyaçlardır. Canlı listede yeni kayıtların görünmesi istenebilir. Tam raporda ise belirli bir anın tutarlı görünümü gerekebilir. Aynı sayfalama çözümünü bu iki beklentiye açıklamasız uygulamayın.

Google AIP-158, sayfa boyutu ve devam belirteci gibi kavramları tanımlar; belirtecin istemci açısından opak olmasını, yetkilendirme yerine geçmemesini ve sonraki istekte kullanılmasını ele alır. [1] Bu kaynak bir tasarım rehberidir; kullandığınız her API’nin aynı davranışı sunduğunu varsaymayın.

Sıralama kararlı ve yeterince ayırt edici olsun

Yalnızca oluşturulma tarihine göre sıralanan iki kayıt aynı anı paylaşabilir. Devam sınırını belirlemek için ek bir tekil alan gerekebilir. Sıralama yönü, eşit değerlerin davranışı ve güncellenen kaydın nereye taşınacağı tanımlansın. Aksi halde cursor olsa bile sınırdaki kayıtların davranışı belirsiz kalabilir.

Varsayımsal stok raporunda kullanıcı ilk sayfayı aldıktan sonra yeni ürünler ekleniyor olsun. Satır sayısına göre atlama yöntemi bazı kayıtları yeniden gösterebilir veya atlayabilir. Bu her durumda cursor zorunlu demek değildir; veri değişimiyle kullanılan yöntemin etkisi bilinmeli ve kabul testinde denenmelidir.

Devam belirtecinin kapsamını koruyun

Belirteç belirli filtre, sıralama ve hesap bağlamıyla üretilmiş olabilir. Sonraki istekte başka filtreyle kullanıldığında ne olacak? Önerilen davranış, uyumsuz isteği açıklamalı biçimde reddetmek veya belgelenmiş şekilde ele almaktır. Gizli iç sorgu ayrıntıları belirteç içinde kullanıcıya açılmasın.

Belirtecin tahmin edilememesi, kullanıcının o verilere erişme hakkı olduğu anlamına gelmez. Her sayfada güncel erişim kontrolü yapılmalıdır. [1] Bir hesapta elde edilen belirtecin başka hesapta kullanıldığı test, yalnızca performans değil veri izolasyonu kontrolüdür. Süresi geçen belirteç için yeniden başlama yolu açıklansın.

Örnek sayfalama test tablosu

Örnek karar ve kabul kontrolleri
DenemeBeklenen kontrolAçıkça seçilecek davranış
Aynı zamanlı iki kayıtKararlı sıralamaTekil bağlayıcı alan
Gezinirken yeni kayıtTekrar ve eksik kontrolüCanlı görünüm veya anlık kesit
Filtre değiştiBelirteç kapsamıReddetme veya yeni sayfalama
Yetki kaldırıldıGüncel erişim kontrolüEski belirteçle veri verilmemesi

Test dosyasında yalnızca on düzgün kayıt bulunmasın. Eşit sıralama değeri, silinen satır ve sayfa sınırında güncellenen kayıtlar ekleyin. Boş sayfa veya beklenenden az sonuç, her API’de listenin bittiğini göstermez; devam koşulu sağlayıcının sözleşmesine göre okunmalıdır.

Raporlama için tutarlılık sınırını belgeleyin

Dışa aktarma sırasında toplam sayının değişmesi kabul edilebilir mi? Gerekliyse bir kesit zamanı veya veri sürümü belirlenebilir. Bu yöntemin kaynak sistemde gerçekten desteklenip desteklenmediği doğrulanmalıdır. Sayfalama tek başına bütün kayıtların aynı anda okunmuş olmasını garanti etmez.

Teslimde kayıt kimliklerinin tekilliğini ve beklenen kapsama ulaşmayı kontrol edin. Sadece dönen satır sayısını toplam sayaçla karşılaştırmak bazı tekrarları gizleyebilir. Büyük veri aktarımında kaldığı yerden devam ve yeniden deneme mekanizmasının aynı sıralama kuralını kullandığı da sınansın.

Sık sorulan sorular

Cursor her zaman offset yönteminden iyi mi?

Her ihtiyaç için tek cevap yoktur. Veri değişimi, rastgele sayfaya erişim, performans ve tutarlılık beklentisi birlikte değerlendirilmelidir.

Belirteci Base64 yapmak güvenli hale getirir mi?

Hayır. Kodlama yetkilendirme veya şifreleme değildir. Belirteç tasarımı ve her istekte erişim kontrolü ayrı ele alınmalıdır.

Teknik kaynaklar

  1. Google AIP-158: sayfalama ve devam belirteçleri

Kaynaklar teknik kavramları destekler. Örnek tablolar ve senaryolar önerilen çalışma araçlarıdır; gerçek müşteri sonucu, bağımsız denetim veya platform garantisi değildir. Uygulama öncesinde kullanılan ürünün güncel koşulları kontrol edilmelidir.

Bu ihtiyacı çalışan bir sisteme dönüştürelim.

Mevcut sisteminizi, sorun yaşadığınız iş akışını ve beklediğiniz sonucu paylaşın. Ganz Dijital ile projenizin kapsamını ve kabul koşullarını netleştirin.

İlgili hizmeti inceleWhatsApp üzerinden görüşelim →

Hazırlama notu: İçerik, belirtilen kaynaklar ve özgün örnek senaryolar kullanılarak yapay zekâ desteğiyle hazırlanmıştır. Sayısal örnekler aksi belirtilmedikçe varsayımsaldır. İşletmeye özel güvenlik, hukuki ve operasyonel gereksinimler ayrıca değerlendirilmelidir.