Bağlantı Kurma ve Hazırlık Süreçleri
Bu hizmet bağımsız bir tarihsel Reddit arşividir; Reddit’in resmî veya canlı veri hizmeti değildir. Veri almaya başlamak için e-posta ve parolayla kayıt olun. Anahtar ödeme öncesinde bir kez gösterilir. Anahtarı güvenli biçimde saklayın ve veri isteklerinde kullanın. Herkese açık /v1/status çağrısı ise kimlik doğrulama gerektirmez.
Hem Python hem JavaScript tarafında GET isteğinin X-API-Key başlığına bu alan adındaki anahtarı ekleyin; X-API-Key değerine Bearer öneki eklemeyin; alternatif olarak Authorization: Bearer başlığıyla geçerli anahtarınızı gönderebilirsiniz. Parametreleri URL’nin sorgu kısmında iletin. Geçerli anahtar tek başına başarı garantisi değildir; bakiye, istek sınırları ve üst hizmet hataları ayrıca değerlendirilmelidir. Yanıt kodunu incelemeden gövdeyi başarılı veri olarak işlemeyin.
Python’da standart kütüphanedeki urllib.request veya http.client kullanılabilir. requests seçerseniz bu üçüncü taraf paketin ortamınızda kurulu olması gerekir. JavaScript’te fetch sunan çalışma ortamının desteğini kontrol edin. İki dilde de sorgu oluşturma, HTTP çağrısı ve yanıt dönüştürme adımlarını ayırmak hata ayıklamayı kolaylaştırabilir. Anahtarı paylaşılabilir bağlantılara ya da açık günlük kayıtlarına eklemeyin.
Temel Arama ve Veri Alma Metodolojisi
Genel arama için /v1/search kullanın. q metni, subreddit topluluğu, author yazarı daraltır; kind post veya comment olabilir. Tarihleri UTC temelinde YYYY-MM-DD biçiminde gönderin; to belirtilen günü içerir. Python’da sorgu parametrelerini kodlayan araçlar, JavaScript’te URLSearchParams gibi araçlar kullanmak karakterleri elle birleştirmekten kaynaklanan sorunları azaltmaya yardımcı olabilir.
limit ve page değerlerini 1–100 aralığında tutun. Bir çağrı en fazla 100 kayıt içeren tek sayfa alır. Bir sorguda ayrı çağrılarla en fazla 100 sayfa dolaşabilirsiniz. İç _doc sırası zaman, alaka veya puan sırası değildir. Sayfaları dolaşmak bütün eşleşmelerin alınmasını garanti etmez; toplamın eq, gte veya unknown durumunu ayrıca değerlendirin.
Gönderiler için /v1/posts, yorumlar için /v1/comments kullanılabilir; ikisi de id gerektirmez. Tek öğeyi kimliğiyle almak için /v1/item ve id kullanın. Yanıtlar düz kayıtlardır. parent_id veya link_id varsa yerel gruplama yapabilirsiniz; tam konuşma ve eksiksiz üst kayıt zinciri garanti edilmez. Her kaydın aynı alanları içerdiğini varsaymadan gelen veriyi kontrol edin.
Hata Yönetimi, Durum Kontrolü ve İnce Ayarlar
400 geçersiz isteği, 401 eksik veya geçersiz anahtarı, 402 yetersiz krediyi, 429 hız sınırını belirtir. Parametre veya anahtar hatasını düzeltmeden aynı çağrıyı yinelemeyin. 429 için beklemeli ve sayısı sınırlı tekrarlar kullanın. Python’daki hata işleme ile JavaScript tarafındaki durum kontrolünün bu nedenleri aynı biçimde ayırdığından emin olun.
Üst hizmet hatalarında ayrılan kredi geri verilir; geçersiz isteklerde kredi düşülmez. Başarılı boş sonuç ücretlidir. İstemci bağlantısı sunucu işlemi başarıyla tamamladıktan sonra koparsa kredi tüketilmiş olabilir; başarılı tekrar da ücretlidir. /v1/status statik açıklama ve HTTP yanıtı sağlar, arama veya arşiv sağlığını ölçmez. Bu yüzden bağlantı kontrolünü gerçek veri çağrısının başarısıyla karıştırmayın.
min_score için ihtiyaç duyduğunuz sayısal eşiği seçin; sabit 100 puan zorunluluğu yoktur. Filtre sıralama yapmaz ve içeriğin kalitesini kanıtlamaz. Ham yanıtı, parametreleri ve yerel dönüşüm kodunu birlikte saklamak iki dildeki sonuçları karşılaştırmayı kolaylaştırır. Aynı sorgunun sonradan aynı kayıtları döndürmesi garanti edilmez; yerel analiz ile yeniden veri almayı ayrı değerlendirin.