Latar Belakang
Dalam penerapan REST API, pertukaran data antara client dan server tidak hanya bergantung pada alamat endpoint, tetapi juga pada jenis tindakan yang ingin dilakukan terhadap suatu data. Setiap request harus memiliki makna yang jelas agar server dapat memprosesnya dengan benar. HTTP berperan sebagai protokol utama yang digunakan untuk mengirim request dari client ke server. Tanpa adanya HTTP, REST API tidak dapat menjalankan fungsinya karena tidak memiliki media untuk menyampaikan instruksi maupun data.HTTP method digunakan untuk menjelaskan jenis permintaan yang dilakukan, seperti mengambil, menambahkan, memperbarui, atau menghapus data. Oleh karena itu, pemahaman mengenai HTTP method menjadi hal yang penting dalam penerapan REST API, karena menentukan bagaimana server merespons setiap request yang dikirim oleh client secara tepat dan terstruktur.
Alat dan Bahan
Alat dan bahan yang digunakan dalam penyusunan artikel ini antara lain:- Laptop
- Sistem Operasi Linux Ubuntu 24.04.3 LTS
- Web Browser (Google Chrome)
- Visual Studio Code
- Postman
- XAMPP
Apa itu HTTP method?
Metode HTTP digunakan untuk menunjukkan aksi yang ingin dilakukan klien terhadap suatu resource pada API. setiap metode merepresentasikan operasi tertentu, seperti membuat (create), membaca (read), memperbarui (update), atau menghapus (delete) data. karena itu, metode HTTP wajib disertakan dalam setiap permintaan ke REST API agar server memahami tindakan yang diminta.Peran HTTP Method Dalam REST API
Dalam rest api, http berperan sebagai fondasi utama yang mengatur cara klien dan server saling berkomunikasi. peran terpenting http bukan hanya sebagai jalur pengiriman data, tetapi sebagai mekanisme untuk menentukan aksi yang dilakukan terhadap sebuah resource melalui http method.HTTP bekerja dengan model request–response dan bersifat stateless. Setiap permintaan yang dikirim klien ke server harus menyertakan http method, karena dari sinilah server memahami maksud permintaan tersebut. tanpa http method, server tidak dapat mengetahui apakah klien ingin mengambil, menambahkan, memperbarui, atau menghapus data.
http method juga menjadi penghubung utama antara endpoint dan tindakan yang dilakukan pada resource tersebut. misalnya, endpoint yang sama dapat digunakan untuk berbagai aksi, tergantung http method yang dipakai seperti GET untuk membaca data, POST untuk membuat data baru, PUT atau PATCH untuk memperbarui data, dan DELETE untuk menghapus data.
dengan demikian, http method merupakan inti dari implementasi rest api. ia memastikan komunikasi antara klien dan server berjalan terstruktur, konsisten, dan sesuai standar, sekaligus membuat api mudah dipahami dan digunakan oleh berbagai aplikasi.
HTTP Method dan Fungsinya
Berikut beberapa HTTP method beserta fungsi dan contoh penggunaannya:GET
GET digunakan untuk mengambil atau membaca data dari server tanpa mengubah state apapun di server. Method ini adalah yang paling sering digunakan dalam REST API.Karakteristik GET yaitu:
Contoh Endpoint dan Request
# Mengambil pengguna dengan ID tertentu
GET /api/users/123
# Mengambil pengguna dengan filter
GET /api/users?status=active&role=admin
# Response (200 OK)
{
"id": 123,
"name": "Budi Santoso",
"email": "budi@example.com",
"role": "admin"
}
Karakteristik POST yaitu:
Contoh Endpoint dan Request
# Request Body
{
"name": "Siti Nurhaliza",
"email": "siti@example.com",
"password": "securepass123",
"role": "user"
}
# Response (201 Created)
{
"id": 124,
"name": "Siti Nurhaliza",
"email": "siti@example.com",
"role": "user",
"created_at": "2024-02-06T10:30:00Z"
}
PUT digunakan untuk mengubah atau mengganti resource secara keseluruhan. Jika resource tidak ada, PUT dapat membuat resource baru (meskipun ini opsional dalam implementasi).
Karakteristik PUT diantaranya:
Contoh Endpoint dan Request
# Request Body (semua field harus disertakan)
{
"name": "Siti Nurhaliza",
"email": "siti.new@example.com",
"role": "admin",
"status": "active"
}
# Response (200 OK)
{
"id": 124,
"name": "Siti Nurhaliza",
"email": "siti.new@example.com",
"role": "admin",
"status": "active",
"updated_at": "2024-02-06T11:00:00Z"
}
Karakteristik PATCH antara lain:
Contoh Endpoint dan Request
# Request Body (hanya field yang berubah)
{
"status": "inactive"
}
# Response (200 OK)
{
"id": 124,
"name": "Siti Nurhaliza",
"email": "siti.new@example.com",
"role": "admin",
"status": "inactive",
"updated_at": "2024-02-06T11:15:00Z"
}
Karakteristik DELETE yaitu:
Contoh Endpoint dan Request
# Response (204 No Content)
# (tidak ada response body)
# Atau Response (200 OK) dengan pesan
{
"message": "User successfully deleted",
"deleted_id": 124
}
Karakteristik HEAD antara lain:
Contoh Endpoint dan Request
# Response Headers (200 OK)
Content-Type: application/json
Content-Length: 250
Last-Modified: Tue, 06 Feb 2024 10:30:00 GMT
ETag: "abc123"
# (tidak ada response body)
Karakteristik OPTIONS diantaranya:
Contoh Endpoint dan Request
# Response (200 OK)
Allow: GET, POST, HEAD, OPTIONS
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Access-Control-Allow-Origin: *
- Safe: Tidak mengubah data di server
- Idempotent: Memanggil berkali-kali menghasilkan hasil yang sama
- Cacheable: Response dapat di-cache oleh browser atau proxy
- Parameter dikirim melalui URL (query string)
- Tidak memiliki request body
Contoh Endpoint dan Request
# Mengambil semua pengguna
GET /api/users
# Mengambil pengguna dengan ID tertentu
GET /api/users/123
# Mengambil pengguna dengan filter
GET /api/users?status=active&role=admin
# Response (200 OK)
{
"id": 123,
"name": "Budi Santoso",
"email": "budi@example.com",
"role": "admin"
}
POST
POST digunakan untuk membuat resource baru di server atau mengirimkan data untuk diproses.Karakteristik POST yaitu:
- Not Safe: Mengubah state di server
- Not Idempotent: Memanggil berkali-kali dapat membuat multiple resource
- Data dikirim melalui request body (biasanya JSON)
- Response biasanya mengembalikan resource yang baru dibuat
- Status code umum: 201 Created
Contoh Endpoint dan Request
# Membuat pengguna baru
POST /api/users
Content-Type: application/json
# Request Body
{
"name": "Siti Nurhaliza",
"email": "siti@example.com",
"password": "securepass123",
"role": "user"
}
# Response (201 Created)
{
"id": 124,
"name": "Siti Nurhaliza",
"email": "siti@example.com",
"role": "user",
"created_at": "2024-02-06T10:30:00Z"
}
PUT
Fungsi UtamaPUT digunakan untuk mengubah atau mengganti resource secara keseluruhan. Jika resource tidak ada, PUT dapat membuat resource baru (meskipun ini opsional dalam implementasi).
Karakteristik PUT diantaranya:
- Not Safe: Mengubah state di server
- Idempotent: Memanggil berkali-kali dengan data sama menghasilkan state yang sama
- Mengganti seluruh resource dengan data yang dikirim
- Client harus mengirim semua field, bukan hanya yang berubah
- Status code umum: 200 OK atau 204 No Content
Contoh Endpoint dan Request
# Update pengguna secara lengkap
PUT /api/users/124
Content-Type: application/json
# Request Body (semua field harus disertakan)
{
"name": "Siti Nurhaliza",
"email": "siti.new@example.com",
"role": "admin",
"status": "active"
}
# Response (200 OK)
{
"id": 124,
"name": "Siti Nurhaliza",
"email": "siti.new@example.com",
"role": "admin",
"status": "active",
"updated_at": "2024-02-06T11:00:00Z"
}
PATCH
PATCH digunakan untuk mengubah sebagian field dari resource yang ada, tanpa harus mengirim seluruh data.Karakteristik PATCH antara lain:
- Not Safe: Mengubah state di server
- Not Idempotent (dalam spec, namun dalam praktik sering diimplementasikan sebagai idempotent)
- Hanya mengirim field yang ingin diubah
- Lebih efisien untuk update partial
- Status code umum: 200 OK
Contoh Endpoint dan Request
# Update sebagian data pengguna
PATCH /api/users/124
Content-Type: application/json
# Request Body (hanya field yang berubah)
{
"status": "inactive"
}
# Response (200 OK)
{
"id": 124,
"name": "Siti Nurhaliza",
"email": "siti.new@example.com",
"role": "admin",
"status": "inactive",
"updated_at": "2024-02-06T11:15:00Z"
}
DELETE
DELETE digunakan untuk menghapus resource dari server.Karakteristik DELETE yaitu:
- Not Safe: Mengubah state di server
- Idempotent: Menghapus resource yang sama berkali-kali menghasilkan state yang sama (resource tetap tidak ada)
- Biasanya tidak memiliki request body
- Status code umum: 204 No Content atau 200 OK
Contoh Endpoint dan Request
# Menghapus pengguna
DELETE /api/users/124
# Response (204 No Content)
# (tidak ada response body)
# Atau Response (200 OK) dengan pesan
{
"message": "User successfully deleted",
"deleted_id": 124
}
HEAD
HEAD identik dengan GET, tetapi server hanya mengirim header tanpa response body. Method ini digunakan untuk mendapatkan metadata tentang resource.Karakteristik HEAD antara lain:
- Safe: Tidak mengubah data di server
- Idempotent: Selalu menghasilkan hasil yang sama
- Tidak ada response body
- Berguna untuk checking keberadaan resource atau mendapatkan metadata
Contoh Endpoint dan Request
# Check apakah user exists dan dapatkan metadata
HEAD /api/users/123
# Response Headers (200 OK)
Content-Type: application/json
Content-Length: 250
Last-Modified: Tue, 06 Feb 2024 10:30:00 GMT
ETag: "abc123"
# (tidak ada response body)
OPTIONS
OPTIONS digunakan untuk mengetahui method HTTP apa saja yang didukung oleh server untuk endpoint tertentu. Method ini sangat penting dalam CORS (Cross-Origin Resource Sharing).Karakteristik OPTIONS diantaranya:
- Safe: Tidak mengubah data di server
- Idempotent: Selalu menghasilkan hasil yang sama
- Mengembalikan informasi tentang komunikasi yang diperbolehkan
- Penting untuk preflight request dalam CORS
Contoh Endpoint dan Request
# Mengetahui method yang tersedia untuk endpoint users
OPTIONS /api/users
# Response (200 OK)
Allow: GET, POST, HEAD, OPTIONS
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Content-Type, Authorization
Daftar Pustaka
AWS.(n.d). What is an API (Application Programming Interface)?. Diakses pada 4 Februari 2026, dari https://aws.amazon.com/what-is/api/
Kemal, Taufik. (2023, 3 Februari). Belajar Express #5 — Apa itu HTTP method dan routes.
Diakses pada 4 Februari 2026, dari https://medium.com/@kemaltf_/belajar-express-5-apa-itu-http-methods-dan-routes-582f094ce77b
Valley, Matt. (2021, 1 Desember). 9 HTTP Methods and How to Use Them. Diakses pada 4 Februari 2026, dari https://testfully.io/blog/http-methods/