Reddit App API
TR

Reddit App API · 04 / 08

Daha fazla göster, bilinçli olarak seçilen tek bir sonraki sayfa demektir

Sayfa sınırlarını, ek kontrol kaydını ve toplamın niteliğini dürüstçe kullanın. Sıralı liste, sabit veri görünümü veya tam dışa aktarım vaat etmeden devamı okuyucuya bırakın.

Sonraki eylemi küçük tutun

Örnek yürüyüş uygulamasının hiking içinde offline maps için limit=3 ve page=1 kullandığını düşünün. Okuyucu dönen kaynakları açar ve başka bir grubun yardımcı olup olmayacağına karar verir. Daha fazla göster, aynı soru için sonraki sayfayı istemelidir. Arka planda tüm sayfaları taramamalı veya eski sonuçları ekranda tutarken sorguyu değiştirmemelidir.

Kullanıcıya görünen ipucu, yanıt başka sayfaya izin verdiğinde çıkan Daha fazla göster kontrolüdür. Bu eylem beklerken tekrar etkinleştirmeyi engelleyin ve gösterilmiş kaynakları erişilebilir tutun. Boş sayfa da dâhil, her başarılı sayfa isteği bir kredi tüketir. Başka sayfa istemeden duran okuyucu, gelecekteki o isteği önler; ekrandan ayrılmak gönderilmiş bir isteğin iptalini veya iadesini garanti etmez.

İstek durumunu bir arada tutun

page artarken q, subreddit, seçilen diğer filtreler ve limit değişmesin. Okuyucu ifadeyi veya tarih aralığını değiştirirse page=1 ile yeni sonuç dizisi başlatın. Farklı bir sorunun ikinci sayfasını eski listeye karıştırmak, iki istek de başarılı olsa bile okuma geçmişini yanıltıcı yapar.

Arşiv _doc sırasını kullanır. Bu, kronolojik, alaka düzeyi veya puan sırası değildir; min_score sıralama talimatı değil filtredir. Elde edilmiş kayıtları sunum için yeniden sıralayabilirsiniz, fakat bu tüm arşivdeki en yeni veya en iyi eşleşmeleri belirlemez. Tekrarlanan sayfa istekleri sabit veri görünümü garantisi taşımaz.

Boş sayfa arama döngüsü yerine yanıtı kullanın

İstek penceresi izin verdiğinde pagination.has_more ek bir kayda bakılarak belirlenir. Yalnızca has_more true ve sayfa numarası 100’ün altındaysa sonraki eylemi sunun. Boş sayfa çıkana kadar istek göndermeyin: hizmet zaten devam sinyali verir ve ek başarılı istekler kredi tüketir.

pagination.total değerini pagination.relation ile okuyun. eq, yanıtın sayım kuralları altında kesin toplamdır; gte istatistiksel tahmin değil alt sınırdır; unknown güvenilir toplam sağlamaz ve null ile birlikte olabilir. Üç kayıt, total 4 ve relation gte gösteren varsayımsal bir ilk yanıtta en az dört eşleşme belirtildiği söylenebilir. Tam olarak dört tane olduğu söylenmemelidir.

Sınırlı pencereyi tanıyın

Sınırlar istek başına 100 kayıt ve 100 sayfadır. limit=100 ile 100. sayfa doluysa fazladan bir kontrol kaydına yer kalmaz. Bu nedenle pagination.window_exhausted true iken has_more false ve relation gte olabilir. Bu sınırda has_more değerinin false olması, arşivde başka eşleşme bulunmadığının kanıtı değildir.

page=1 sonrasındaki boş bir sayfa da genel toplamı belirleyemez; ağ geçidi bu durumda toplamı unknown olarak işaretler. Okuyucuya Tüm tartışmalar yüklendi yerine Bu arama penceresinin sınırına ulaşıldı gibi gerçek sınırı anlatın. Sorguyu daraltmak sonraki çalışmayı düzenleyebilir, ancak sınırlı istekleri eksiksiz dışa aktarıma dönüştürmez.

Dikkatli birleştirin ve hatadan sonra devamı mümkün kılın

Gerçek bir kayıt kimliği mevcutsa uygulamanız bunu biriktirdiği listede aynı kaydı iki kez göstermemek için kullanabilir. Kimlik kurallarını gerçekten alınan alanlardan seçin; eksik kimliği uydurmayın veya sırf metinleri benzediği için farklı kayıtları birleştirmeyin. Yerel tekilleştirme, kalan listenin eksiksiz olduğunu kanıtlamaz.

Başarısız sonraki sayfa isteği, önceki kayıtları ve sorguyu korumalı ve açık bir yeniden deneme seçeneği sunmalıdır. Sonucu öğrenene kadar bekleyen sayfa numarasını ayrı tutun; sırası dışında gelen yanıtı kendi uygulama mantığınızla ele alın. API bir imleç uç noktası sağlamaz veya bu arayüz durumunu sizin yerinize yönetmez. Ayrı yükleniyor durumları ve istek bütçesi örnekleri için /tr/#field-notes bölümüne dönün.