Rute dan autentikasi
Alamat dasar adalah https://api.redditfetch.com. GET /v1/search mencari posting dan komentar; /v1/posts mengambil posting, sedangkan /v1/comments mengambil komentar. GET /v1/item?id=... meminta satu catatan berdasarkan pengenalnya. id hanya didukung pada item, bukan sebagai filter posts atau comments. GET /v1/subreddits?prefix=... mencari awalan nama komunitas. Jumlah dalam agregasi komunitas tidak dijamin tepat untuk seluruh arsip.
Pengambilan menerima Authorization: Bearer YOUR_API_KEY maupun X-API-Key: YOUR_API_KEY. Gunakan salah satu dan baca kunci asli dari rahasia server. Cookie sesi Secure HttpOnly pada panel akun memiliki fungsi berbeda dan bukan pengganti header API. Akun, kunci, dan saldo khusus untuk domain ini. Kunci merek lain dalam jaringan tidak memberikan akses ke akun redditfetch.com yang sama.
GET /v1/status bersifat publik dan tidak menghabiskan kredit. Respons menjelaskan cakupan layanan yang tetap serta menunjukkan bahwa aplikasi HTTP merespons. Rute ini tidak memeriksa sumber arsip, keberhasilan kueri, keberadaan catatan, atau saldo. Status yang berhasil bukan bukti bahwa pengambilan berikutnya akan berhasil. Tangani respons data secara tersendiri dan nilai isi yang benar-benar diterima.
Parameter dan arti hasil
Parameter pencarian, posting, dan komentar adalah q, subreddit, author, kind, from, to, min_score, limit, serta page. Nilai kind ialah post atau comment. Tanggal menggunakan YYYY-MM-DD berdasarkan UTC; hari to termasuk dalam rentang. parent_id dan link_id bukan filter kueri. Untuk contoh komentar kecil gunakan subreddit=javascript dan limit=3. Nilai itu membatasi permintaan, bukan menjamin hasil ditemukan.
Parameter min_score berfungsi sebagai filter ketat untuk memfilter rekaman berdasarkan skor minimum, namun bukan berfungsi untuk mengurutkan hasil. Urutan dokumen dalam arsip mengikuti urutan _doc, yang berarti hasil tidak diurutkan berdasarkan waktu atau relevansi. Filter ini hanya menyaring data yang sesuai dengan nilai yang ditentukan. Jika Anda menentukan skor minimum yang terlalu tinggi, Anda mungkin tidak mendapatkan hasil apa pun meskipun data tersebut tersedia dalam arsip. Hal ini penting untuk dipahami agar tidak mengharapkan pengurutan otomatis oleh server.
limit menerima 1–100 dan page menerima 1–100. Satu permintaan mengambil paling banyak 100 catatan dan satu kueri paling banyak 100 halaman. Setiap halaman diminta terpisah. Pembagian tanggal atau pengulangan halaman tidak menjamin hasil lengkap maupun unik. Total catatan dengan relasi eq bersifat tepat; gte adalah batas bawah; unknown atau null berarti tidak ada total yang dapat diandalkan. Total bukan jumlah halaman.
Total tepat juga tidak membuktikan klien telah menyimpan semua catatan. Respons berbentuk datar; membaca, menghitung, atau mengodekan teks tidak memerlukan pohon percakapan. Jika meneliti hubungan, Anda boleh mengelompokkan secara lokal menggunakan parent_id atau link_id yang tersedia. Ini bersifat opsional dan tidak memulihkan induk atau komentar yang hilang. Gunakan hanya bidang yang benar-benar ada dalam respons untuk pemetaan aplikasi.
Kesalahan, fetch, dan kredit
HTTP 400 berarti bentuk atau nilai parameter perlu diperiksa. HTTP 401 menunjukkan kunci tidak ada atau tidak valid; HTTP 402 berarti saldo tidak cukup. HTTP 429 menandakan batas laju. Pada Node.js, bedakan respons HTTP tersebut dari penolakan promise akibat masalah jaringan. Periksa response.ok dan response.status sebelum menganggap hasilnya berhasil. Perbaiki parameter atau kunci; tunda permintaan ketika terkena batas laju.
Setiap pengambilan berhasil, termasuk kosong, memakai satu kredit. Permintaan tidak valid tidak mendebit saldo; kegagalan sumber hulu mengembalikan cadangan kredit. Namun, koneksi klien yang terputus mungkin terjadi setelah server berhasil menjalankan permintaan berbayar. Pengulangan berhasil memakai kredit lagi. Rancang pencatatan status dan keputusan mengulang tanpa mencatat header rahasia. Jangan menyimpulkan tidak ada biaya hanya karena klien menampilkan kesalahan komunikasi.