API Yolları ve Kimlik Doğrulama
API Reddit CC, bağımsız bir tarihî Reddit arşivleme hizmetidir ve resmî Reddit sunucusu değildir. Otomasyon geliştiricileri, arşiv veri tabanına erişmek için /v1/search, /v1/posts, /v1/comments, /v1/item, /v1/subreddits ve /v1/status gibi statik API yollarını kullanırlar. Bu yollar, arşivdeki metin verilerine ve meta verilere erişim sağlar. /v1/status yolu, sunucunun yanıt verdiğini gösteren statik bir hizmet açıklamasıdır ve arşivin arama motoru sağlığını veya veri bütünlüğünü doğrudan test etmez. Bu durum, arşivin geçmiş veri koleksiyonu olduğunu ve canlı verinin bir parçası olmadığını hatırlatır. Bu uç nokta yalnızca HTTP uygulamasının yanıt verdiğini gösterir; kayıtların tutarlılığını veya aramanın kullanılabilirliğini doğrulamaz. Veri alma isteklerinde Authorization: Bearer veya X-API-Key kullanılır; /v1/status ise anahtar gerektirmez.
Filtreler ve Veri Yapısı
Arşivdeki veriler, /v1/search yolu üzerinden çeşitli filtreler kullanılarak sorgulanabilir. Bu filtreler arasında q (arama sorgusu), subreddit, author, kind (post veya comment), from ve to (UTC içinde YYYY-MM-DD biçimi; to günü dahil) ve min_score yer alır. min_score parametresi yalnızca bir filtredir; sonuçları skoruna göre sıralamaz. Sıralama, arşivin iç _doc sırasına göre yapılır; bu sıra tarihe, ilgiye veya puana göre sıralama değildir. Bu nedenle, sonuçlar zaman sırasına göre düzenlenmez. Bu durum, verilerin nasıl depolandığına bağlıdır. Geliştiriciler, bu sıralama mantığını anlamalı ve isteklerini buna göre tasarlamalıdır. Veri yapısı, düz kayıtlardan oluşur; sunucu yanıt ağacı veya üst/alt bağlantıları birleştirmez. İstemciler, parent_id veya link_id alanları varsa, bu kayıtları yerel olarak gruplayabilir. Ancak bu, tam bir sohbet ağacı garantisini vermez.
/v1/posts ve /v1/comments için id gerekmez; /v1/item belirli bir kayıt için id ister. /v1/subreddits, subreddit adının başına göre arama yapan prefix parametresini destekler. limit istek başına en fazla 100 kayıt, page ise sorgu başına 1–100 arası sayfa seçer. Sayfaları dolaşmak bütün arşivin alındığını kanıtlamaz. Toplamdaki eq kesin sayıyı, gte alt sınırı, unknown ise null olabilen bilinmeyen toplamı ifade eder.
Yanıtlar, sunucunun bir ağaç yapısı oluşturmadığı düz nesnelerdir. parent_id veya link_id alanları varsa, istemci kodu bu verileri yerel olarak birleştirebilir. Ancak bu, sunucunun tam bir hiyerarşi sunduğu anlamına gelmez. Eksik ilişkilerin var olduğunu varsaymayın. İstemci, aldığı kayıtları kendi işleme kurallarına göre doğrulayabilir. Bu, esnek bir mimari sunar ve istemci tarafında işleme esnekliği sağlar. Filtreler, sunucu tarafında işlenir ve sonuçları daraltır. Ancak sıralama, verinin depolandığı sıraya bağlıdır. Bu, verilerin zaman içinde nasıl değiştiğini anlamak için önemlidir. Geliştiriciler, bu sınırlamaları dikkate almalıdır. q araması title ve text alanlarını kullanır. Birden fazla sözcük, eşleşen aynı alan içinde AND koşuluyla birleştirilir; sözcüklerin iki farklı alana dağılması yeterli değildir.
Hata Kodları ve Ödemeler
İstekler sırasında, istemci yanlış bir API anahtarı kullanırsa sunucu 401 hatası döndürür. Bu hata, anahtarın eksik veya geçersiz olduğunu gösterir. Doğru anahtarı kullanarak isteği tekrar göndermeniz gerekir. Bu durum, güvenli erişimi sağlamak için kritik öneme sahiptir. Anahtar ve bakiye apireddit.cc hesabınıza aittir; ağdaki diğer sitelerde çalışmaz. İstemciler, anahtarlarını güvenli bir yerde saklamalı ve isteklerde doğru şekilde kullanmalıdır.
Yeterli bakiye yoksa sunucu 402 hata kodunu döndürür. Bu, hesabınızda yeterli kredi olmadığını gösterir. Arşiv API'si, kredi sistemi üzerinden çalışır ve her başarılı istek için kredi tüketilir. Bakiye yüklemek için fatura oluşturup ödeme yapmanız gerekir. Bu ödeme, TRON TRC20 üzerinde USDT veya Ethereum ana ağı ERC20 üzerinde USDC ile yapılabilir. Yalnızca faturaya uygun, doğrulanmış gerçek transfer kredi ekler. Faturanın alıcı adresi ve tam tutarı kullanılmalıdır; sonuçlanma süresi garanti edilmez. Geliştiriciler, bakiyelerini düzenli olarak kontrol etmeli ve yetersiz bakiye sorunlarını önlemelidir.
Hız sınırı aşıldığında sunucu 429 hata kodunu döndürür. Bu, kısa bir süre içinde çok fazla istek gönderdiğiniz anlamına gelir. Bu durumda, bir süre bekleyip isteğinizi tekrar göndermeniz gerekir. Bu kural, sunucu kaynaklarının verimli kullanılmasını sağlar. Ayrıca, kaynak hatasında ayrılan kredi kullanıcıya iade edilir; geçersiz istekte kredi düşülmez. /v1/status isteği ücretsizdir ve kredi tüketmez. Bu özellik, sisteminizdeki hataları ayıklamanızı kolaylaştırır. İstemci yanıtı kaybetse bile sunucu başarılı olup kredi tüketmiş olabilir. Başarılı tekrar bir kredi daha harcar; bu nedenle tekrar sayısını sınırlayın. 400 kodunda sorgu parametrelerini düzeltin.