Di halaman web saya, jika saya ingin menampilkan dropdown dinamis (mis. Nama kota berdasarkan negara yang dipilih), saya bisa melakukannya menggunakan AJAX. Tapi saya juga bisa melakukannya menggunakan panggilan REST. Jadi mana yang harus saya gunakan?
Masalah saya adalah saya benar-benar tidak mendapatkan perbedaan antara REST dan permintaan browser HTTP lainnya. (Alias formulir kirim). Saya telah melihat definisi formal REST dan tampaknya identik dengan permintaan HTTP. Jadi bagaimana REST secara inheren berbeda dari AJAX?
Jawaban:
Um, tidak. Keduanya benar-benar ortogonal. Jika Anda ingin memperbarui halaman Anda dengan data yang harus Anda dapatkan dari server, Anda akan melakukannya menggunakan AJAX. Tidak ada jalan lain. Dan panggilan AJAX itu bisa menggunakan REST, atau yang lainnya.
Sebuah SISA panggilan adalah permintaan HTTP, selalu. Meskipun dapat digunakan untuk menangani panggilan browser biasa (seperti pengiriman formulir) dan mengembalikan halaman HTML lengkap, biasanya digunakan untuk menangani panggilan API yang hanya mengembalikan data (biasanya dalam format JSON).
Karena REST adalah gaya khusus menggunakan HTTP, bisa dibilang menggunakannya seperti yang semula dimaksudkan untuk digunakan, tetapi yang sebagian besar orang tidak "dapatkan" dan karenanya jarang digunakan selama hampir 2 dekade.
Secara khusus, REST berarti penyandian entitas yang ingin Anda ambil atau manipulasi dalam URL itu sendiri (biasanya melalui ID) dan penyandian tindakan apa yang ingin Anda lakukan di dalamnya dalam metode HTTP yang digunakan (DAPATKAN untuk mengambil, POST untuk mengubah, PUT untuk membuat, PUT untuk membuat , HAPUS untuk menghapus).
sumber
Yah saya pikir Anda pertama-tama perlu memahami bahwa AJAX dan REST tidak benar-benar alternatif untuk kasus penggunaan Anda. AJAX adalah singkatan dari javascript dan XML asinkron jadi jika Anda menggunakan javascript untuk memuat data setelah permintaan browser selesai, Anda melakukan AJAX.
REST di sisi lain adalah singkatan dari Representational State Transfer yang sebagaimana ditunjukkan oleh Stefan Billet menggunakan permintaan HTTP untuk mentransfer data. Jadi REST sebenarnya adalah salah satu cara untuk melakukan AJAX. SABUN akan menjadi yang lain tetapi ini offtopic untuk pertanyaan Anda. Jadi pertanyaan Anda seharusnya adalah: "Teknologi mana yang terbaik untuk kasus penggunaan saya?"
Dalam hal ini saya akan merekomendasikan untuk memikirkan jumlah data yang digunakan dalam dropdown Anda. Jika Anda hanya memiliki beberapa elemen, Anda dapat memiliki semuanya di halaman Anda dan hanya menggunakan javascript untuk menunjukkan yang tepat. Pilihan kedua bisa menggunakan panggilan REST dengan JSON sebagai tanggapan karena mudah digunakan dengan javascript dan sangat ringan yang tentu saja juga berarti melakukan AJAX.
sumber
REST menggunakan kata kerja HTTP GET, POST, PUT, DELETE untuk masing-masing mendapatkan, menyisipkan, memperbarui, menghapus sumber daya di server. Misalnya, DAPATKAN dengan url: controller / customer / {id}
Alternatifnya adalah menambahkan metode ke controller seperti GetCustomerById (id), InsertCustomer (pelanggan), UpdateCustomer (pelanggan), DeleteCustomer (pelanggan). Inilah yang dikenal sebagai pendekatan RPC. Misalnya, DAPATKAN dengan url: controller / GetCustomerById? Id = {id}
Salah satu perbedaan adalah, adalah bahwa api REST agak dapat diprediksi. Jika Anda tahu REST dan Anda tahu nama sumber daya yang Anda inginkan (mis. Pelanggan), maka Anda dapat langsung masuk dan menggunakan pengontrol REST dengan kata kerja standar.
Dengan pendekatan RPC, Anda perlu tahu metode apa yang ada di controller Anda, argumen apa yang mereka ambil, dll. Tanda tangan ini dapat bervariasi dari controller ke controller, dari aplikasi ke aplikasi.
AJAX di sisi lain hanyalah cara tidak sinkron untuk menempatkan permintaan tersebut, baik sebagai panggilan REST atau panggilan RPC.
sumber