Tetapkan tugas dan cakupannya
Reddit Data Stream adalah arsip historis independen, bukan layanan resmi Reddit atau data langsung. Tidak tersedia umpan perubahan, SSE, WebSocket, OAuth, operasi tulis, pemungutan suara, atau pesan pribadi. GET berkala dari penjadwal tidak membuat kemampuan itu atau membuktikan jadwal pembaruan arsip. Tulis batas komunitas, tipe, tanggal, dan halaman pekerjaan. Pengenal lokal setiap eksekusi membantu mengetahui panggilan yang dicoba, tetapi merupakan catatan klien sendiri, bukan mekanisme snapshot tetap atau pengiriman tepat satu kali dari server. Jelaskan hasil sebagai pengambilan historis terbatas, bukan pemantauan kejadian terbaru.
Contoh awal GET https://api.redditdatastream.com/v1/posts?subreddit=apacheairflow&limit=3&page=3 tidak menjamin tiga hasil. Gunakan /v1/comments untuk komentar atau /v1/search untuk pencarian umum. from dan to memakai YYYY-MM-DD dalam UTC; to mencakup seluruh hari. kind menerima post atau comment dan min_score hanya ambang minimum, bukan pengurutan. id bukan filter daftar; /v1/item?id=... untuk item yang diketahui. Jendela tanggal dapat membagi pekerjaan, tetapi tanggal rekaman terakhir bukan bukti seluruh periode sebelumnya selesai atau batas aman data baru. Halaman bukan urutan waktu.
Periksa pengambilan, penulisan, dan pemuatan
Gunakan Authorization: Bearer YOUR_API_KEY atau X-API-Key: YOUR_API_KEY; keduanya valid untuk kunci arsip domain ini, bukan token OAuth Reddit. Simpan rahasia pada server dan keluarkan dari berkas serta log. Setelah respons diterima, gunakan pengode JSON untuk setiap objek rekaman dan tulis satu objek per baris dalam JSONL lokal. Biarkan pengode menangani baris baru dalam teks; jangan menulis pembungkus respons sebagai daftar rekaman. Konversi ini kode sendiri, bukan ekspor JSONL server. Jangan mengarang bidang hilang, dan Anda dapat memisahkan respons asli dari hasil transformasi.
Catat kondisi, halaman, waktu, hasil HTTP, penulisan berkas, dan pemuatan tujuan untuk setiap percobaan. Jika penulisan gagal setelah respons berhasil, menaikkan nomor halaman dapat melewati data lokal. Periksa berkas yang sudah ada sebelum meminta ulang. Memeriksa berkas sementara lalu meneruskannya ke pemuatan merupakan desain klien, bukan jaminan melanjutkan tanpa kehilangan atau memperoleh respons sama. Membaca dan menghitung rekaman datar tidak memerlukan pohon; pengelompokan hubungan bersifat pilihan dan tidak memulihkan induk hilang. Nomor halaman bukan kursor tetap. Deduplikasi lokal juga tidak membuktikan seluruh arsip unik atau lengkap.
Berhenti berdasarkan batas, kesalahan, dan anggaran
Batasnya 100 rekaman per permintaan dan 100 halaman per kueri. Urutan dokumen bukan waktu, relevansi, atau skor. eq berarti total tepat, gte batas bawah, unknown atau null total tepercaya yang tidak diketahui. Total tepat tidak membuktikan semua hasil tersimpan. Pembagian tanggal, iterasi, dan deduplikasi tidak menjamin pengambilan lengkap atau unik. Penemuan komunitas bukan daftar alfabetis menyeluruh atau hitungan global yang pasti. Laporan pekerjaan dapat menyebut halaman yang diterima, berkas yang dimuat, dan alasan berhenti; jangan menyebut pekerjaan itu salinan seluruh arsip atau riwayat perubahan lengkap.
Pengambilan berhasil termasuk kosong memakai satu kredit; 1.000 keberhasilan berharga $1. Permintaan tidak valid tidak didebit dan kegagalan sistem hulu mengembalikan cadangan. Respons dapat hilang setelah keberhasilan server, lalu pengulangan berhasil dikenai kredit lagi. 400 untuk parameter, 401 kunci, 402 saldo, dan 429 laju; batasi percobaan. /v1/status publik tanpa biaya hanya menunjukkan cakupan statis serta respons HTTP, bukan pencarian, rekaman, kunci, atau saldo. Penyimpanan permanen dan kinerja tidak dijamin. Bedakan pemrosesan lokal dari pengambilan ulang dan gunakan data dengan mempertimbangkan hukum serta hak pihak ketiga.