Görev tanımını ve kapsamı belirleyin
Reddit Data Stream bağımsız geçmiş arşividir; resmî Reddit hizmeti ve canlı veri değildir. Değişiklik akışı, SSE, WebSocket, OAuth, yazma, oylama ve mesajlaşma sunmaz. Zamanlayıcınızın düzenli GET göndermesi bu işlevleri oluşturmaz veya arşiv güncelleme takvimini kanıtlamaz. Görevin topluluk, kayıt türü, tarih ve sayfa sınırlarını açıkça yazın. Her çalıştırmaya yerel iş kimliği vermek hangi çağrıların denendiğini izlemenizi sağlar. Bu sizin kontrol kaydınızdır; sunucunun sabit anlık görüntü veya tam bir kez teslim mekanizması değildir.
GET https://api.redditdatastream.com/v1/posts?subreddit=apacheairflow&limit=3&page=3 başlangıç örneğidir; üç sonuç garantisi yoktur. Yorumlar için /v1/comments, genel arama için /v1/search kullanılabilir. from ve to UTC YYYY-MM-DD kullanır, to bütün günü içerir; kind post veya comment olur. min_score minimum puan filtresidir, sıralama değildir. id liste filtresi değildir, /v1/item?id=... bilinen tek öğe içindir. Tarih penceresi işi bölebilir ama son kaydın tarihini önceki verinin tamamlandığının veya yeni veri başlangıcının güvenli sınırı saymayın.
Alma, yazma ve yüklemeyi ayrı doğrulayın
Authorization: Bearer YOUR_API_KEY veya X-API-Key: YOUR_API_KEY kullanın; ikisi de bu alan adının arşiv anahtarını taşır, Reddit OAuth belirteci değildir. Sırrı sunucuda tutup dosya ve günlüklerden çıkarın. Yanıt geldikten sonra kayıt nesnelerini JSON kodlayıcısıyla tek tek kodlayıp satır sonuyla yerel JSONL dosyasına yazabilirsiniz. Metin içindeki satır sonlarının kodlanmasını kodlayıcıya bırakın; yanıt zarfını kayıt listesi gibi yazmayın. Bu dönüşüm kendi kodunuzdur, sunucunun JSONL dışa aktarımı değildir. Eksik alanları uydurmayın ve özgün yanıtı dönüşümden ayrı koruyabilirsiniz.
Her deneme için koşulları, sayfayı, zamanı, HTTP sonucunu, dosya yazımını ve hedef yüklemesini ayrı kaydedin. Başarılı yanıttan sonra yazma başarısızsa sayfa numarasını ilerletmek yerel veriyi atlayabilir. Yeniden çağırmadan önce eldeki dosyayı kontrol edin. Geçici dosyayı denetleyip sonra yükleme aşamasına geçirmek bir istemci tasarımıdır; kayıpsız devam veya yeniden aynı veriyi alma garantisi değildir. Düz kayıtları okumak ve saymak için ağaç gerekmez; ilişki gruplaması isteğe bağlıdır ve eksik ebeveynleri kurtarmaz. Sayfa numarası kalıcı devam imleci değildir.
Sınır, hata ve maliyetle durun
İstek başına 100 kayıt ve sorgu başına 100 sayfa sınırı vardır. Belge sırası zaman, ilgi veya puan sırası değildir. eq kesin toplam, gte alt sınır, unknown veya null güvenilir toplamın bilinmediğidir. Kesin sayı bütün eşleşmelerin saklandığını kanıtlamaz. Tarih bölme, sayfa döngüsü ve tekrar ayıklama tam veya tekrarsız çıkarım garantisi değildir. Topluluk keşfi de eksiksiz alfabetik liste veya kesin küresel sayım değildir. Görev raporunda hangi sayfaların alındığını, yüklenen dosyayı ve durma nedenini belirtin; işi bütün arşivin aktarımı gibi sunmayın.
Başarılı çekme boş sonuç dahil bir kredidir; 1.000 başarı $1’dir. Geçersiz istekler kredi düşürmez, üst sistem hataları rezervasyonları geri verir. Yanıt kaybından önce sunucu başarılı olabilir ve başarılı tekrar ek kredi tüketebilir. 400 parametre, 401 anahtar, 402 bakiye, 429 sıklık kontrolüdür; deneme sayısını sınırlayın. /v1/status açık ve ücretsizdir ama statik kapsam ve HTTP yanıtı dışında arama, kayıt, anahtar veya bakiye testi değildir. Kalıcılık ve performans garanti edilmez. Yerel yeniden işleme ile API yeniden alımını ayırın ve verinin kullanımında hukuku, üçüncü taraf haklarını gözetin.