Memahami REST API: Panduan Lengkap untuk Developer Pemula
Apa Itu API dan REST?
API (Application Programming Interface) adalah cara dua aplikasi berkomunikasi satu sama lain. Bayangkan API seperti pelayan di restoran — kamu (frontend) memesan ke pelayan (API), pelayan menyampaikan ke dapur (backend), lalu membawa makanan (data) kembali ke mejamu.
REST adalah gaya arsitektur untuk membuat API yang menggunakan HTTP — protokol yang sama dengan yang dipakai browser untuk mengakses website. API yang mengikuti prinsip REST disebut RESTful API.
HTTP Methods yang Wajib Diketahui
- GET — Mengambil data. Contoh: ambil daftar artikel
- POST — Mengirim/membuat data baru. Contoh: buat akun baru
- PUT — Update data secara penuh. Contoh: edit profil
- PATCH — Update sebagian data. Contoh: ganti hanya foto profil
- DELETE — Hapus data. Contoh: hapus postingan
Struktur URL REST API
URL di REST API harus menggunakan kata benda (noun), bukan kata kerja:
✓ GET /api/users — ambil semua user
✓ GET /api/users/123 — ambil user dengan ID 123
✓ POST /api/users — buat user baru
✓ PUT /api/users/123 — update user 123
✓ DELETE /api/users/123 — hapus user 123
✗ GET /api/getUsers — salah, pakai kata kerja
✗ POST /api/createUser — salah, pakai kata kerja
HTTP Status Code yang Sering Muncul
- 200 OK — Request berhasil
- 201 Created — Data berhasil dibuat
- 400 Bad Request — Request tidak valid
- 401 Unauthorized — Butuh autentikasi
- 403 Forbidden — Tidak punya izin akses
- 404 Not Found — Data tidak ditemukan
- 500 Internal Server Error — Ada error di server
Membuat REST API Sederhana dengan Python Flask
from flask import Flask, jsonify, request
app = Flask(__name__)
# Data sementara (in-memory)
users = [
{"id": 1, "nama": "Budi", "email": "budi@email.com"},
{"id": 2, "nama": "Ani", "email": "ani@email.com"},
]
# GET semua user
@app.route("/api/users", methods=["GET"])
def get_users():
return jsonify(users)
# GET user berdasarkan ID
@app.route("/api/users/", methods=["GET"])
def get_user(user_id):
user = next((u for u in users if u["id"] == user_id), None)
if user:
return jsonify(user)
return jsonify({"error": "User tidak ditemukan"}), 404
# POST buat user baru
@app.route("/api/users", methods=["POST"])
def create_user():
data = request.json
new_user = {
"id": len(users) + 1,
"nama": data["nama"],
"email": data["email"]
}
users.append(new_user)
return jsonify(new_user), 201
if __name__ == "__main__":
app.run(debug=True)
Test API dengan Postman atau curl
Setelah API berjalan, test dengan curl di terminal:
# GET semua user
curl http://localhost:5000/api/users
# POST buat user baru
curl -X POST http://localhost:5000/api/users \
-H "Content-Type: application/json" \
-d '{"nama":"Citra","email":"citra@email.com"}'
Atau gunakan Postman — aplikasi GUI yang lebih mudah untuk testing API.
Format Response yang Baik
Selalu kembalikan response yang konsisten dan informatif:
# Response sukses
{
"status": "success",
"data": { ... },
"message": "Data berhasil diambil"
}
# Response error
{
"status": "error",
"message": "User tidak ditemukan",
"code": 404
}
Penutup
REST API adalah fondasi dari hampir semua aplikasi modern. Setelah memahami konsep ini, kamu bisa membangun backend untuk website, aplikasi mobile, atau bahkan menghubungkan berbagai layanan secara otomatis.
Langkah selanjutnya: pelajari autentikasi API dengan JWT (JSON Web Token) dan cara menyimpan data ke database agar API kamu tidak hanya menyimpan data di memori.