Salah satu tugas paling penting yang harus dipecahkan oleh programmer ketika mengembangkan proyek web adalah mengatur pertukaran data antara bagian klien dan server dari proyek tersebut. Ini mungkin terlihat seperti ini: pengguna menekan tombol tertentu pada halaman yang terbuka di browser, sistem merespons dengan permintaan ke server, setelah itu server mengirim halaman data yang diminta. Untuk menampilkan data tersebut pada halaman, tanpa memuat ulang, akan diproses, setelah itu halaman diperbarui dan pengguna menerima apa yang dia butuhkan.

Teknologi AJAX adalah landasan interaksi sistem tersebut, dalam aplikasi yang digunakan instance objek
XMLHttpRequest
. Untuk memudahkan programmer untuk bekerja dengan AJAX dan
XMLHttpRequest
, perpustakaan khusus telah dibuat yang menyediakan pengembang dengan antarmuka yang nyaman, menghilangkan kebutuhan untuk menggunakan mekanisme tingkat rendah.
Bahan, terjemahan yang kami terbitkan hari ini, dikhususkan untuk analisis lima alat populer untuk bekerja dengan HTTP: Axios, Request, Superagent, Fetch, dan Supertest.
Aksioma
Perpustakaan
Axios untuk mengeksekusi permintaan HTTP didasarkan pada janji. Sangat cocok untuk digunakan di aplikasi Node.js dan browser. Perpustakaan mendukung semua browser modern, termasuk IE8 +.
โ Kekuatan
- Bekerja di lingkungan Node.js dan di browser.
- Mendukung janji.
- Memungkinkan Anda mengeksekusi dan membatalkan permintaan.
- Memungkinkan Anda menyetel batas waktu respons.
- Mendukung perlindungan terhadap serangan XSRF.
- Mengizinkan intersepsi permintaan dan respons.
- Mendukung indikasi kemajuan pengunggahan data.
- Banyak digunakan dalam proyek berdasarkan React dan Vue.
โ Kelemahan
- Perpustakaannya cukup sulit untuk digunakan.
Superagent
Perpustakaan
Superagent , seperti Axios, cocok untuk Node.js dan browser modern. Ini memberikan pengembang dengan API sederhana dan dapat dimengerti yang nyaman untuk bekerja dengannya.
Untuk menjalankan permintaan HTTP menggunakan Superagent, cukup panggil metode objek
request
sesuai:
request .get('') .then(res => log(res)) .catch(err => log(err))
โ Kekuatan
- Mendukung plugin.
- Dapat dikonfigurasi
- Ini memiliki antarmuka yang bagus untuk membuat permintaan HTTP.
- Mendukung chaining beberapa panggilan untuk menyelesaikan kueri.
- Bekerja di lingkungan Node.js dan di browser.
- Mendukung tampilan kemajuan untuk mengunggah dan mengunduh data.
- Mendukung mekanisme penyandian chunked-transfer.
- Mendukung panggilan balik.
- Banyak plugin telah dikembangkan untuk perpustakaan ini.
โ Kelemahan
- Ini memiliki semacam API yang tidak mematuhi standar apa pun.
Minta
Pustaka
Permintaan , dibandingkan dengan alat sebelumnya yang ditinjau, adalah alat yang disederhanakan untuk mengeksekusi permintaan HTTP. Saat menggunakan perpustakaan ini, Anda harus menulis lebih sedikit kode daripada ketika bekerja dengan perpustakaan lain. Itu tidak menggunakan janji, tetapi jika Anda membutuhkan fitur ini, Anda dapat menggunakan perpustakaan
Permintaan-Janji , yang menerapkan pembungkus di sekitar perpustakaan Permintaan dan memungkinkan Anda untuk bekerja dengan janji-janji.
โ Kekuatan
- API yang mudah digunakan.
โ Kelemahan
- Perpustakaan tidak menggunakan janji.
Ambil
Mengambil bukan perpustakaan, tidak seperti alat lain yang dicakup dalam ulasan ini. Ini adalah API browser standar, alternatif untuk
XMLHttpRequest
.
โ Kekuatan
- Fleksibilitas dan kemudahan penggunaan.
- Penggunaan janji-janji, yang menghindari "neraka panggilan balik".
- Dukungan oleh semua browser modern.
- Mengikuti pendekatan respons-permintaan.
- Sintaksnya sederhana dan bagus.
- Didukung di Bereaksi Asli.
โ Kelemahan
- Tidak berfungsi di lingkungan server.
- Itu tidak menerapkan beberapa fitur yang tersedia di perpustakaan HTTP, seperti membatalkan permintaan.
- Tidak mengandung dukungan bawaan untuk parameter default, seperti mode permintaan, header, kredensial.
Supertest
Perpustakaan
Supertest didasarkan pada perpustakaan Superagent. Ini dirancang untuk menguji server HTTP yang dibangun berdasarkan Node.js. Supertest memberi pengembang akses ke API mereka sendiri dan API tingkat rendah yang disediakan oleh perpustakaan Superagent.
โ Kekuatan
- Ini memiliki API yang nyaman.
- Menyederhanakan pembuatan tes HTTP.
- Ini dapat digunakan bersama dengan pustaka untuk proyek pengujian seperti Chai.js dan Mocha .
โ Kelemahan
- Tidak berfungsi di browser.
Ringkasan
Pada artikel ini, kami memeriksa beberapa alat populer untuk bekerja dengan HTTP yang berguna bagi pengembang JS yang membuat aplikasi yang menggunakan teknologi browser dan platform Node.js. Ketika memilih basis untuk subsistem HTTP dari suatu proyek tertentu, disarankan agar Anda terlebih dahulu mencoba beberapa alat yang terlihat cocok, dan kemudian membuat keputusan akhir.
Pembaca yang budiman! Pustaka HTTP apa yang Anda gunakan?