httpmethodrestPemula4 mnt baca

HTTP Method: Kata Kerja di Setiap Request

Mengenal GET, POST, PUT, PATCH, dan DELETE: kapan memakai yang mana, plus konsep safe dan idempotent.

Method menentukan aksi

Kalau URL adalah alamat tujuannya, maka method adalah kata kerjanya: mau ngapain ke alamat itu? Lima method ini menutupi hampir semua kebutuhan API:

  • GET : mengambil data. Contoh: memuat daftar artikel.
  • POST : membuat data baru. Contoh: mengirim form pendaftaran.
  • PUT : mengganti seluruh data yang sudah ada. Contoh: menyimpan ulang profil lengkap.
  • PATCH : mengubah sebagian data. Contoh: mengganti nama saja tanpa menyentuh field lain.
  • DELETE : menghapus data. Contoh: menghapus komentar.

Contoh mentahnya:

http
GET /api/artikel HTTP/1.1
Host: learn.omnidevv.biz.id
http
POST /api/artikel HTTP/1.1
Host: learn.omnidevv.biz.id
Content-Type: application/json

{ "judul": "Belajar HTTP", "isi": "..." }

Safe dan idempotent: dua sifat penting

Dua istilah ini sering muncul di dokumentasi API:

  • Safe artinya request tidak mengubah apa pun di server. GET itu safe, karena cuma membaca. Jangan pernah memakai GET untuk aksi seperti menghapus data, karena browser dan proxy boleh mengulang request GET kapan saja (misalnya saat refresh atau preload).
  • Idempotent artinya diulang berkali-kali hasilnya tetap sama. PUT dan DELETE idempotent: menghapus data yang sama dua kali hasilnya tetap "data terhapus". POST tidak idempotent: menekan tombol bayar dua kali bisa membuat dua transaksi.

Di JavaScript, method dipilih lewat opsi fetch:

javascript
// GET (default, tidak perlu ditulis eksplisit)
fetch("https://learn.omnidevv.biz.id/api/artikel");

// DELETE dengan method eksplisit
fetch("https://learn.omnidevv.biz.id/api/artikel/42", {
  method: "DELETE",
});

Dua method yang jarang disebut

Selain lima besar, ada dua method yang sering muncul diam-diam:

  • HEAD : seperti GET tapi tanpa body. Dipakai untuk mengecek "apakah resource ini ada dan seberapa besar?" tanpa mengunduh isinya. Berguna untuk validasi link atau cek ukuran file sebelum download.
  • OPTIONS : bertanya ke server "method apa saja yang boleh dipakai ke URL ini?". Browser mengirim ini otomatis sebagai preflight sebelum request lintas origin tertentu. Kamu tidak pernah memanggilnya manual, tapi error CORS yang kamu lihat di console sering berasal dari request ini.

Satu catatan: beberapa form HTML lawas dan client terbatas tidak mendukung PUT/PATCH/DELETE secara native. API kadang menyediakan trik method override: kirim POST biasa dengan field tambahan _method=DELETE, lalu server menerjemahkannya. Ini jalan pintas yang sah, bukan hack curang.

Catatan teknis: GET tidak memiliki body request. Kalau kamu perlu mengirim data ke server, pakai query string untuk filter sederhana, atau POST/PUT dengan body untuk data yang lebih besar. Server yang baik akan menolak GET ber-body, dan proxy di tengah jalan bisa membuangnya diam-diam.