Bağımsız Arşiv Yapısı ve İstek Modeli
Bu servis, resmi Reddit veritabanı yerine bağımsız bir geçmiş arşiv kullanır. Bu nedenle veriler canlı değildir ve belirli bir kapsama tarihine veya performans garantilerine sahip değildir. Her istek, arşivdeki mevcut kayıtlara dayanır ve sunucu yanıtı istatistikleri veritabanı sağlığı anlamına gelmez. Bu ayrım, veri mühendislerinin pipeline tasarımında kritik öneme sahiptir.
Kimlik doğrulamada Authorization: Bearer YOUR_API_KEY veya X-API-Key: YOUR_API_KEY başlıklarından biri kullanılabilir. Anahtar ve bakiye redditdataapi.com alan adına aittir. Her başarılı veri çekme isteği, boş sonuç dahil, bir kredi tüketir. Geçersiz istekler ücretlendirilmez; kaynak sistemde başarısız olan veri çekme işleminin kredi rezervi iade edilir. İstemcide bağlantı kopması ise sunucuda ücretli bir başarı gerçekleşmiş olabileceği için aynı anlama gelmez.
Sunucudan dönen veriler düz kayıt şeklindedir. İstemci tarafında, parent_id ve link_id alanları mevcutsa yerel gruplama yapılabilir ancak bu, kapsamlı bir thread ağacı veya üst/alt hiyerarşi garantisi vermez. Yanıt yapısı, sunucu tarafından birleştirilmiş bir ağaç yapısı içermez. Bu durum, istemci tarafında veri birleştirme mantığı gerektirir.
Filtreleme, Sıralama ve Erişim Parametreleri
min_score yalnızca bir filtre görevi görür, sonuçları puana göre sıralamaz. Desteklenen arama parametreleri q, subreddit, author, kind, from, to, min_score, limit ve page olarak yazılır. kind için post veya comment kullanılır. Tarihler UTC takviminde YYYY-MM-DD biçimindedir; to günü dahildir. Arşiv belge sırası kronolojik veya ilgililiğe dayalı bir sıralama değildir.
GET /v1/posts ve GET /v1/comments için id parametresi kullanılmaz; GET /v1/item tek bir kayıt için id gerektirir. GET /v1/search filtrelerle arama yapar. GET /v1/subreddits topluluk adları için prefix ve limit destekler. Topluluk sayımlarının küresel olarak kesin olduğu varsayılmamalıdır. Yanıtta parent_id veya link_id bulunması, bunların desteklenen istek filtreleri olduğu anlamına gelmez.
Her istekte en fazla 100 kayıt ve her sorguda en fazla 100 sayfa istenebilir. Sayfalama ilişkisinde eq kesin toplamı, gte alt sınırı, unknown bilinmeyen toplamı belirtir; toplam null olabilir. Sonuçları yerel kontrol noktalarıyla kaydetmek kendi yükleyicinizin durumunu izler. Uzak sayfaların tekrar istendiğinde aynı kalacağı veya yinelemenin bütün arşivi kapsayacağı garanti edilmez.
Hatalar, Ücretlendirme ve Durum Endpoint'leri
HTTP 400 geçersiz parametreyi, 401 eksik veya geçersiz anahtarı, 402 yetersiz krediyi, 429 hız sınırını bildirir. 400 için parametreyi, 401 için başlığı ve anahtarı kontrol edin. 402 durumunda işlemi durdurun veya bakiyeyi yükleyin; 429 durumunda bekleyin. Bu kodlar birer işlem sonucudur, veri kaynağının sağlıklı veya eksiksiz olduğuna dair kanıt değildir.
/v1/status endpoint'i, statik bağımsız bir arşiv bildirimi yapar ve HTTP sunucusunun yanıt verdiğini gösterir. Arşiv sağlığını, arama altyapısını veya veri tamamlanmasını kontrol etmez. Bu endpoint, istek yapılsa bile ücretlendirilmez. HTTP uygulamasının yanıt verdiğini ve hizmetin kapsamını gösteren bu yol, operasyonel sağlık göstergesi değildir.
Veri deposuna yüklemeden önce küçük bir yanıtı hedef alan türleriyle karşılaştırın. Eksik alanı varsayılan değerle doldurma veya satırı reddetme kararını açıkça kaydedin. Ham yanıtı ve dönüşüm sürümünü birlikte tutarsanız aynı yerel girdi üzerinde işlemeyi yeniden deneyebilirsiniz. Bu mühendislik yöntemi, uzak arşivin değişmez olduğu veya ileride aynı sorgunun aynı yanıtı vereceği anlamına gelmez.