Apa perbedaan antara metode PUT, POST dan PATCH dalam protokol HTTP?
Apa perbedaan antara metode PUT, POST dan PATCH dalam protokol HTTP?
Jawaban:
Perbedaan antara PUT, POST, GET, DELETE dan PATCH IN HTTP Verbs:
Kata kerja HTTP yang paling umum digunakan POST, GET, PUT, DELETE mirip dengan operasi CRUD (Buat, Baca, Perbarui dan Hapus) dalam database. Kami menentukan kata kerja HTTP ini dalam huruf kapital . Jadi, di bawah ini adalah perbandingan di antara mereka.
PATCH: Menyerahkan sebagian modifikasi ke sumber daya. Jika Anda hanya perlu memperbarui satu bidang untuk sumber daya, Anda mungkin ingin menggunakan metode PATCH.
Catatan:
Karena POST, PUT, DELETE memodifikasi konten, tes dengan Fiddler untuk url di bawah ini hanya meniru pembaruan. Itu tidak menghapus atau memodifikasi sebenarnya. Kami hanya dapat melihat kode status untuk memeriksa apakah penyisipan, pembaruan, penghapusan terjadi.
URL: http://jsonplaceholder.typicode.com/posts/
1) DAPATKAN:
GET adalah tipe paling sederhana dari metode permintaan HTTP; yang digunakan browser setiap kali Anda mengklik tautan atau mengetik URL ke bilah alamat. Ini menginstruksikan server untuk mengirimkan data yang diidentifikasi oleh URL ke klien. Data tidak boleh dimodifikasi di sisi server sebagai hasil dari permintaan GET. Dalam hal ini, permintaan GET bersifat read-only.
Memeriksa dengan Fiddler atau PostMan: Kita dapat menggunakan Fiddler untuk memeriksa respons. Buka Fiddler dan pilih tab Compose. Tentukan kata kerja dan url seperti yang ditunjukkan di bawah ini dan klik Jalankan untuk memeriksa respons.
Verb: DAPATKAN
url: http://jsonplaceholder.typicode.com/posts/
Respons: Anda akan mendapatkan respons sebagai:
"userId": 1, "id": 1, "title": "sunt aut ...", "body": "quia et suscipit ..."
Di jalur "bahagia" (atau non-kesalahan), GET mengembalikan representasi dalam XML atau JSON dan kode respons HTTP 200 (OK). Dalam kasus kesalahan, paling sering mengembalikan 404 (TIDAK DITEMUKAN) atau 400 (PERMINTAAN BURUK).
2) POST:
Kata kerja POST sebagian besar digunakan untuk membuat sumber daya baru. Secara khusus, ini digunakan untuk membuat sumber daya bawahan. Artinya, tunduk pada beberapa sumber daya lain (misalnya orang tua).
Pada pembuatan yang berhasil, kembalikan status HTTP 201, kembalikan header Lokasi dengan tautan ke sumber daya yang baru dibuat dengan status HTTP 201.
Memeriksa dengan Fiddler atau PostMan: Kita dapat menggunakan Fiddler untuk memeriksa respons. Buka Fiddler dan pilih tab Compose. Tentukan kata kerja dan url seperti yang ditunjukkan di bawah ini dan klik Jalankan untuk memeriksa respons.
Kata kerja: POST
url: http://jsonplaceholder.typicode.com/posts/
Badan Permintaan:
data: {judul: 'foo', badan: 'bar', userId: 1000, Id: 1000}
Respons: Anda akan menerima kode respons sebagai 201.
Jika kita ingin memeriksa catatan yang dimasukkan dengan Id = 1000, ubah kata kerjanya untuk Dapatkan dan gunakan url yang sama dan klik Jalankan.
Seperti yang dikatakan sebelumnya, url di atas hanya memungkinkan membaca (GET), kami tidak dapat membaca data yang diperbarui secara nyata.
3) PUT:
PUT paling sering digunakan untuk kemampuan pembaruan , PUT-ing ke URI sumber daya yang dikenal dengan badan permintaan yang berisi representasi yang baru diperbarui dari sumber daya asli.
Memeriksa dengan Fiddler atau PostMan: Kita dapat menggunakan Fiddler untuk memeriksa respons. Buka Fiddler dan pilih tab Compose. Tentukan kata kerja dan url seperti yang ditunjukkan di bawah ini dan klik Jalankan untuk memeriksa respons.
Kata kerja: PUT
url: http://jsonplaceholder.typicode.com/posts/1
Badan Permintaan:
data: {judul: 'foo', badan: 'bar', userId: 1, Id: 1}
Respons: Saat pembaruan berhasil, ia mengembalikan 200 (atau 204 jika tidak mengembalikan konten apa pun di tubuh) dari PUT.
4) HAPUS:
DELETE cukup mudah dimengerti. Ini digunakan untuk menghapus sumber daya yang diidentifikasi oleh URI.
Pada penghapusan sukses, kembalikan status HTTP 200 (OK) bersama dengan badan respons, mungkin representasi dari item yang dihapus (sering menuntut bandwidth terlalu banyak), atau respons terbungkus (lihat Nilai Pengembalian di bawah). Entah itu atau mengembalikan status HTTP 204 (TANPA KONTEN) tanpa badan tanggapan. Dengan kata lain, status 204 tanpa badan, atau respons gaya JSEND dan status HTTP 200 adalah respons yang disarankan.
Memeriksa dengan Fiddler atau PostMan: Kita dapat menggunakan Fiddler untuk memeriksa respons. Buka Fiddler dan pilih tab Compose. Tentukan kata kerja dan url seperti yang ditunjukkan di bawah ini dan klik Jalankan untuk memeriksa respons.
Verb: DELETE
url: http://jsonplaceholder.typicode.com/posts/1
Respons: Saat penghapusan berhasil, ia mengembalikan status HTTP 200 (OK) bersama dengan badan respons.
Contoh antara PUT dan PATCH
TARUH
Jika saya harus mengubah nama depan saya maka kirim permintaan PUT untuk Pembaruan:
{"first": "Nazmul", "last": "hasan"} Jadi, di sini untuk memperbarui nama depan kita perlu mengirim semua parameter data lagi.
PATCH:
Permintaan tambalan mengatakan bahwa kami hanya akan mengirim data yang perlu kami modifikasi tanpa mengubah atau mempengaruhi bagian data lainnya. Mis: jika kita hanya perlu memperbarui nama depan, kita hanya memberikan nama depan saja.
Silakan merujuk tautan di bawah ini untuk informasi lebih lanjut:
https://jsonplaceholder.typicode.com/
https://github.com/typicode/jsonplaceholder#how-to
PUT = ganti SELURUH SUMBERDAYA dengan representasi baru yang disediakan
PATCH = ganti bagian-bagian sumber daya dengan nilai-nilai yang disediakan DAN | ATAU bagian-bagian lain dari sumber daya diperbarui yang tidak Anda sediakan (cap waktu) DAN | ATAU memperbarui pengaruh sumber daya sumber daya lain (hubungan)
Definisi di bawah ini dari contoh dunia nyata.
Gambaran Umum Contoh
Untuk setiap data klien, kami menyimpan pengenal untuk menemukan data klien itu dan kami akan mengirimkan kembali pengenal itu ke klien itu untuk referensi.
POS
TARUH
PATCH
Catatan: Pada Metode Put , Kami tidak melempar pengecualian jika pengidentifikasi tidak ditemukan. Namun dalam metode Patch , kami melemparkan pengecualian jika pengidentifikasi tidak ditemukan.
Beri tahu saya jika Anda memiliki pertanyaan di atas.
GET / PUT idempoten. PATCH terkadang idempoten
Apa itu idempoten - Artinya, jika kami memunculkan kueri beberapa kali, ia tidak akan mempengaruhi hasilnya. (Keluaran yang sama. Misalkan seekor sapi hamil dan jika kami mengembangbiakkannya lagi, maka ia tidak bisa hamil berkali-kali)
get
: -dapatkan sederhana. Dapatkan data dari server dan perlihatkan kepada pengguna
{
id:1
name:parth
email:x@x.com
}
post
: -buat sumber daya baru di Database. Itu berarti menambahkan data baru. Ini bukan idempoten.
put
: -Buat sumber daya baru jika tidak tambahkan ke yang sudah ada. Idempoten karena akan memperbarui sumber daya yang sama setiap kali dan output akan sama. ex. - data awal
{
id:1
name:parth
email:x@x.com
}
{
id:1
email:ppp@ppp.com
}
patch
jadi sekarang datang permintaan patch PATCH kadang-kadang idempoten
id:1
name:parth
email:x@x.com
}
nama tambalan: w
{
id:1
name:w
email:x@x.com
}
Metode HTTP DAPATKAN ya POST no TETAPI ya PATCH no * OPSI ya KEPALA ya HAPUS ya
Sumber: Idempoten - Apa itu Idempotensi?
Perbedaan Utama Antara Permintaan PUT dan PATCH :
Misalkan kita memiliki sumber daya yang memegang nama depan dan nama belakang seseorang.
Jika kami ingin mengubah nama depan maka kami mengirim permintaan pembaruan
{ "first": "Michael", "last": "Angelo" }
Di sini, meskipun kami hanya mengubah nama depan, dengan permintaan PUT kami harus mengirim parameter pertama dan terakhir.
Dengan kata lain, adalah wajib untuk mengirim semua nilai lagi, muatan penuh.
Namun, ketika kami mengirim permintaan PATCH, kami hanya mengirim data yang ingin kami perbarui. Dengan kata lain, kami hanya mengirim nama depan untuk memperbarui, tidak perlu mengirim nama belakang.
Cukup logis perbedaan antara PUT & PATCH wrt mengirim data penuh & parsial untuk mengganti / memperbarui masing-masing. Namun, hanya beberapa poin seperti di bawah ini
Pikirkan seperti ini ...
POST - buat
PUT - ganti
PATCH - perbarui
DAPATKAN - baca
HAPUS - hapus
Penjelasan Sederhana:
POST - Buat catatan BARU
PUT - Jika catatan ada, perbarui yang lain, buat catatan baru
PATCH - perbarui
DAPATKAN - baca
HAPUS - hapus