Kullanıcının sorusunu sorguya dönüştürün
Önce uygulamanın yanıtlayacağı soruyu belirleyin. Bir toplulukta geçmiş ürün tartışmalarını bulmak ile belirli bir yazarın yorumlarını incelemek farklı filtreler gerektirir. Arama metnini q, topluluğu subreddit, yazarı author olarak aktarın. Kullanıcıya hangi filtrelerin etkin olduğunu gösterin ve arama düğmesine bastığında bunların nasıl bir araya geleceğini açıklayın. Desteklenmeyen sorgu dilini kabul ediyormuş gibi bir giriş alanı sunmayın.
Tarih seçicinizin çıktısını UTC temelinde YYYY-MM-DD biçimine dönüştürün. from başlangıcı, to ise belirtilen gün dahil bitişi tanımlar. Kullanıcı arayüzünde yerel tarihler gösteriyorsanız, API’ye giden gerçek sınırları da açıklayın. Sadece gönderiler için kind değerini post, sadece yorumlar için comment yapın. min_score ile puan eşiği koyabilirsiniz; bu, sonuçların en yüksek puana göre sıralanmasını sağlamaz.
Arama formunun yanında verinin tarihsel ve bağımsız bir arşivden geldiğini belirtin. Canlı Reddit akışı, resmî bağlantı veya tam geçmiş kapsamı vaat etmeyin. Dar bir sorgu bile tüm ilgili kayıtları getirmeyebilir. Ekranda görülen veri sayısıyla araştırma sorusunun kapsamını ayırmak, kullanıcının eksik bir örneklemden bütün topluluk hakkında kesin sonuç çıkarmasını önlemeye yardımcı olur.
Yanıtları sayfa sayfa işleyin
GET /v1/search veya içerik türüne uygun /v1/posts ve /v1/comments yollarını kullanın. X-API-Key başlığına bu alan adındaki anahtarı ekleyin. limit ve page değerlerini 1–100 aralığında tutun. Her istek tek sayfada en fazla 100 kayıt getirir. Sonraki sayfa için ayrı çağrı yapın; kullanıcının istemediği bütün sayfaları otomatik olarak yüklemek zorunda değilsiniz.
Arşiv sonuçları iç _doc sırasındadır. Bu, kronoloji veya alaka sıralaması değildir. Yerel bir tarih sıralaması sunarsanız kapsamını yalnızca alınmış kayıtlarla sınırlı olarak etiketleyin. Yanıttaki alanların varlığını kontrol ederek görünümü kurun; her kaydın aynı alanları içerdiğini varsaymayın. parent_id ve link_id varsa konuşma grupları oluşturabilirsiniz, ancak eksiksiz tartışma ağacı gösterdiğinizi ileri sürmeyin.
Toplam gösteriminde eq için kesin eşleşme sayısını, gte için en az bu kadar eşleşme olduğunu, unknown için toplamın bilinmediğini anlatın. Alt sınırı son sayfanın kanıtı olarak kullanmayın. Bir sorgunun 100 sayfasını dolaşmak, bütün eşleşmelerin veya arşivin tamamının alındığını kanıtlamaz. Bölümlenmiş sorgularda yinelenen kayıtlarla karşılaşılabileceğini de yerel işleme tasarımınızda hesaba katın.
Hataları, maliyeti ve tekrar üretimi yönetin
400 durumunda parametreleri düzeltin, 401 durumunda anahtarı ve başlığı kontrol edin, 402 durumunda bakiyeyi değerlendirin. 429 yanıtı için beklemeli yeniden deneme ve sınırlı tekrar sayısı kullanın. /v1/status yalnızca statik açıklama ile HTTP yanıtını gösterir; arama altyapısının sağlığını veya kayıtların hazır olduğunu kanıtlamaz. Bağlantı kontrolünü gerçek sorgu başarısıyla aynı göstergeye dönüştürmeyin.
Başarılı her çağrı, boş olsa bile 1 kredi tüketir. Üst hizmet hatalarında ayrılan kredi geri verilir; istemci bağlantı hatası sunucudaki başarıdan sonra oluşmuşsa kredi tüketilmiş olabilir. Başarılı tekrarlar da ücretlidir. Aldığınız ham yanıtları, sorgu parametrelerini ve yerel dönüşüm kodunu birlikte saklayın. Böylece sonraki API çağrısı farklı sonuç verse bile önceki analizin veri temelini açıklayabilirsiniz.