Tarih penceresini yerel iş tanımı yapın
Reddit Stream API bağımsız bir geçmiş arşividir; canlı SSE veya WebSocket akışı sağlamaz. Düzenli sorgulama, yeni Reddit olaylarının anında geleceğini göstermez. Arşivin güncellenme takvimi veya sonuçların değişmezliği garanti edilmez. Artımlı işleme burada kendi toplu işinizi küçük, izlenebilir görevlere ayırmanız anlamına gelir. Sunucunun olay imleci, teslim garantisi veya eksiksiz değişiklik günlüğü sunduğu anlamına gelmez. Kullanıcıya bu işin aldığı arşiv kayıtlarıyla çalıştığını açıkça belirtin.
İhtiyacınıza uygunsa /v1/search veya /v1/posts üzerinde from ve to ile tarih penceresi tanımlayabilirsiniz. Biçim UTC esaslı YYYY-MM-DD’dir ve to belirtilen günün tamamını içerir. Günlük görevleri planlarken bu dahil olma kuralını dikkate alın; bitiş gününü sonraki görevin başlangıcında tekrar kullanırsanız örtüşmeyi kendiniz oluşturabilirsiniz. Pencerelerin düzenli tanımlanması yine de arşivin her günü kapsadığını veya bütün eşleşmelerin alınacağını kanıtlamaz. Desteklenmeyen saat hassasiyetini varmış gibi kullanmayın.
Canlı bir akış gibi düşünmek yerine, her bir zaman penceresini ayrı bir iş birimi olarak ele almalısınız. Bu yöntem, veri işleme yükünüzü yönetilebilir parçalara bölmenizi sağlar. Sonuç olarak, arşiv verilerine erişim süreciniz, kesintisiz bir akıştan ziyade, belirlenmiş tarih koşullarına ait sayfalar halinde ilerler. Bu iş birimlerini kronolojik olay teslimi olarak tanımlamayın. Yerel günlükte hangi filtrelerle hangi sayfaların denendiğini saklayın; alınmamış kayıtlar hakkında tamamlandı sonucunu çıkarmayın.
Sayfa işleme ve yerel ilerleme
Örnek sayfa isteği https://api.redditstreamapi.com/v1/posts?subreddit=datasets&limit=3&page=2 biçimindedir. Bir sorguda en çok 100 sayfa, bir istekte en çok 100 kayıt alınabilir. limit değerini işinizin ihtiyaçlarına göre seçin; daima 100 kullanmak zorunlu değildir. Sayfa numarası arşiv sırasındaki seçimdir, kalıcı devam imleci veya zaman damgası değildir. Son kaydın tarihini sonraki pencerenin güvenli sınırı saymak doğru olmaz. Örnek, ikinci sayfanın bulunacağını ya da üç sonuç döneceğini vaat etmez.
Her deneme için sorgu koşulları, sayfa, deneme zamanı, HTTP sonucu ve yerel yazma sonucunu ayrı tutabilirsiniz. Başarılı yanıttan sonra dosya yazımı başarısız olursa yalnızca sayfa numarasını ilerletmek eldeki sonucu atlayabilir. Yeniden başlatmadan önce yerel veriyi kontrol edin. Bu kayıt sizin uygulamanıza aittir; sunucu tutarlı anlık görüntü veya kayıpsız devam garantisi vermiş olmaz. Yanıtların sabitliği ve tekrar çalıştırmaların aynı veriyi döndüreceği de varsayılmamalıdır.
Belge sırası zaman, ilgi veya puan sırası değildir. min_score yalnızca en düşük puanı süzer. Yerel sıralama alınmış kayıtları düzenleyebilir ama alınmamışları bulmaz. eq kesin toplam, gte alt sınır, unknown veya null güvenilir toplamın bilinmediğidir; toplam kayıt sayısıdır. Kesin sayı dahi yerel kaydın tamamlandığını göstermez. parent_id ve link_id ile ilişki gruplaması isteğe bağlıdır; basit okumada ağaç gerekmez ve gruplama eksik üst kayıtları kurtarmaz. Tarih bölme veya tekrar ayıklama tamlığı kanıtlamaz.
Hata, kimlik bilgisi ve bütçe
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. Gerçek anahtarı sunucu ortamında koruyun ve günlüklerden çıkarın. 400 parametre düzeltmesi, 401 anahtar denetimi, 402 bakiye kontrolü, 429 sıklığı azaltma ve beklemeli tekrar gerektirebilir. Deneme sınırını ve durma koşulunu istemcide belirleyin. Başka hesaplarla sınırlamayı aşmayın. Hesap oturumunun bulunması doğru veri çekme başlığının kullanıldığını kanıtlamaz.
Başarılı her çekme, boş sonuç dahil bir kredidir; 1.000 başarılı isteğin bedeli $1’dir. Geçersiz istekler kredi düşürmez, üst sistem hataları rezervasyonları geri verir. İstemcinin yanıtı kaybetmesi ise sunucuda başarısızlık demek değildir. Başarılı tekrar yeniden kredi tüketebilir. Tekrar döngüsünü hem kayıt durumuna hem bütçeye göre sınırlayın. Salt okunur erişim aynı yanıtı veya ücretsiz tekrarları garanti etmez. Mevcut yerel yanıtı yeniden işlemekle arşive yeni istek göndermeyi ayrı eylemler olarak ele alın.
/v1/status ücretsiz ve açıktır; statik kapsamı ve HTTP yanıtını gösterir, arama deposunu veya kayıt varlığını denetlemez. Anahtar veya bakiye kontrolü de değildir. Bu yanıta bakarak görevi veri açısından tamamlandı işaretlemeyin. İş raporunda denenmiş sayfaları, yerel olarak saklanan sonuçları, durma nedenini ve kapsama ilişkin belirsizlikleri yazın. Böyle bir rapor arşivin tamlığını, kalıcılığını veya belirli performansı kanıtlamaz. Sonuçların kullanımında geçerli hukuk ve üçüncü taraf haklarını da gözetin.