Method Dalam REST API
Method REST API
Method dalam REST API memiliki fungsi yang berbeda-beda untuk menangani permintaan dari client ke server. Berikut adalah beberapa method utama dalam REST API beserta fungsinya:
1. GET
- Fungsi: Mengambil data dari server.
- Contoh:
GET /users→ Mengambil daftar semua pengguna.
2. POST
- Fungsi: Mengirim atau menambahkan data baru ke server.
- Contoh:
POST /usersdengan body{ "name": "John Doe" }→ Menambahkan pengguna baru.
3. PUT
- Fungsi: Memperbarui data yang sudah ada di server secara keseluruhan.
- Contoh:
PUT /users/1dengan body{ "name": "Jane Doe", "email": "jane@example.com" }→ Memperbarui semua data pengguna dengan ID 1.
4. PATCH
- Fungsi: Memperbarui sebagian data yang ada di server.
- Contoh:
PATCH /users/1dengan body{ "email": "jane@example.com" }→ Hanya memperbarui email pengguna dengan ID 1.
5. DELETE
- Fungsi: Menghapus data dari server.
- Contoh:
DELETE /users/1→ Menghapus pengguna dengan ID 1.
6. OPTIONS
- Fungsi: Menampilkan method yang tersedia untuk suatu resource.
- Contoh:
OPTIONS /users→ Memberikan daftar method yang bisa digunakan (GET, POST, PUT, DELETE).
7. HEAD
- Fungsi: Sama seperti GET, tetapi hanya mengambil header respons tanpa isi body.
- Contoh:
HEAD /users→ Mengecek apakah resource ada tanpa mengunduh datanya.
Method ini digunakan dalam berbagai layanan REST API untuk mengelola data secara efisien dan sesuai standar HTTP.
Perbedaan PUT dan PATCH
PUT
- Mengganti seluruh sumber daya dengan yang baru.
- Jika suatu properti tidak disertakan dalam permintaan, properti tersebut akan dihapus atau di-reset ke default.
- Idempotent, artinya jika permintaan yang sama dikirim berkali-kali, hasilnya akan tetap sama.
Contoh: Misalkan ada data pengguna:
{
"name": "John Doe",
"email": "john@example.com",
"age": 30
}PUT /users/1 Content-Type: application/json { "name": "Jane Doe", "email": "jane@example.com" }Maka akan menjadi :
{ "name": "Jane Doe", "email": "jane@example.com" }Properti age hilang karena tidak disertakan dalam permintaan PUT.
Sedangkan PATCH
- Memperbarui sebagian data tanpa menghapus yang tidak disebutkan.
- Bukan idempotent dalam beberapa kasus, karena perubahan bisa bersifat kumulatif.
Contoh: Misalkan ada data pengguna yang sama seperti sebelumnya. Jika kita mengirim permintaan PATCH berikut:
PATCH /users/1 Content-Type: application/json { "name": "Jane Doe" }Maka data pengguna setelah PATCH tetap mempertahankan properti yang ada dan hanya memperbarui name:
{
"name": "Jane Doe",
"email": "john@example.com",
"age": 30
}Properti email dan age tetap ada karena PATCH hanya mengganti properti yang disebutkan.
Kesimpulan
| Aspek | PUT | PATCH |
|---|---|---|
| Update | Seluruh sumber daya | Sebagian sumber daya |
| Idempotent | Ya | Tidak selalu |
| Data yang tidak dikirim | Dihapus atau di-reset | Tetap ada |
| Digunakan untuk | Mengganti seluruh objek | Memodifikasi sebagian data |
Gunakan PUT jika ingin mengganti seluruh objek, dan gunakan PATCH jika hanya ingin memperbarui sebagian atribut tanpa menghapus data yang lain.