REST API adalah tulang punggung aplikasi modern. Hampir setiap aplikasi yang Anda gunakan sehari-hari — dari media sosial, e-commerce, hingga mobile banking — berkomunikasi melalui API. Jika Anda seorang developer, memahami REST API bukan lagi pilihan, melainkan keharusan.
Artikel ini membahas REST API dari nol: mulai dari konsep dasar, cara kerja, HTTP method, status code, autentikasi, hingga praktik terbaik yang digunakan developer profesional.
Apa Itu REST API?
REST (Representational State Transfer) adalah gaya arsitektur untuk membangun layanan web yang ringan, skalabel, dan mudah dipahami. API (Application Programming Interface) adalah antarmuka yang memungkinkan dua aplikasi saling berkomunikasi.
Jadi, REST API adalah API yang mengikuti prinsip-prinsip REST — menggunakan HTTP sebagai protokol komunikasi dan URL sebagai identifikasi resource.
Contoh sederhana: ketika Anda membuka aplikasi cuaca di ponsel, aplikasi tersebut mengirim request ke REST API milik penyedia layanan cuaca, lalu menampilkan data yang diterima.
Prinsip Dasar REST
REST memiliki beberapa prinsip utama yang membedakannya dari arsitektur lain:
- Stateless — Setiap request berdiri sendiri. Server tidak menyimpan state client di antara request.
- Client-Server — Client dan server terpisah, masing-masing dapat berkembang secara independen.
- Cacheable — Response dapat di-cache untuk meningkatkan performa.
- Uniform Interface — Menggunakan konvensi yang konsisten, seperti HTTP method dan status code.
- Layered System — Arsitektur dapat terdiri dari beberapa lapisan (load balancer, proxy, dll).
HTTP Method dalam REST API
REST API menggunakan HTTP method untuk menentukan aksi yang dilakukan terhadap resource:
- GET — Mengambil data. Contoh:
GET /usersuntuk mengambil daftar user. - POST — Membuat data baru. Contoh:
POST /usersuntuk membuat user baru. - PUT — Mengupdate data secara keseluruhan. Contoh:
PUT /users/1. - PATCH — Mengupdate sebagian data. Contoh:
PATCH /users/1. - DELETE — Menghapus data. Contoh:
DELETE /users/1.
Pastikan Anda menggunakan method yang sesuai. Jangan gunakan GET untuk mengubah data — itu melanggar prinsip REST dan berisiko keamanan.
Struktur URL yang Baik
URL dalam REST API harus mencerminkan resource, bukan aksi. Gunakan kata benda, bukan kata kerja.
Benar:
GET /users
GET /users/1
POST /users
PUT /users/1
DELETE /users/1
Salah:
GET /getUsers
POST /createUser
POST /deleteUser?id=1
Gunakan juga plural noun untuk konsistensi, dan hindari karakter khusus yang tidak perlu.
HTTP Status Code
Status code memberi tahu client apakah request berhasil atau gagal. Beberapa yang paling umum:
- 200 OK — Request berhasil.
- 201 Created — Resource baru berhasil dibuat.
- 400 Bad Request — Request tidak valid (misalnya parameter kurang).
- 401 Unauthorized — Client belum terautentikasi.
- 403 Forbidden — Client terautentikasi tapi tidak punya akses.
- 404 Not Found — Resource tidak ditemukan.
- 500 Internal Server Error — Terjadi error di server.
Gunakan status code yang tepat. Jangan mengembalikan 200 untuk semua response — itu menyulitkan client dalam menangani error.
Format Response: JSON
JSON (JavaScript Object Notation) adalah format standar untuk response REST API. JSON ringan, mudah dibaca manusia, dan didukung hampir semua bahasa pemrograman.
Contoh response sukses:
{
"status": "success",
"data": {
"id": 1,
"name": "Mhd Arjunanta",
"email": "admin@mhdarjunanta.com"
}
}
Contoh response error:
{
"status": "error",
"message": "User not found",
"code": 404
}
Konsisten dalam format response memudahkan client untuk menangani berbagai kondisi.
Autentikasi API
REST API harus dilindungi agar hanya client yang berhak dapat mengaksesnya. Beberapa metode autentikasi yang umum:
- API Key — Client mengirim key unik di header atau query parameter.
- Bearer Token (JWT) — Token yang dikirim di header
Authorization: Bearer <token>. - OAuth 2.0 — Standar autentikasi untuk aplikasi pihak ketiga.
- Basic Auth — Username dan password di-encode Base64 (kurang aman, gunakan hanya dengan HTTPS).
Untuk aplikasi modern, JWT adalah pilihan paling populer karena stateless dan mudah diimplementasikan.
Praktik Terbaik Membangun REST API
1. Gunakan Versioning
Selalu sertakan versi di URL atau header untuk menghindari breaking change:
GET /api/v1/users
2. Validasi Input
Jangan pernah mempercayai input dari client. Validasi semua data yang masuk, baik tipe, format, maupun panjangnya.
3. Rate Limiting
Batasi jumlah request per periode waktu untuk mencegah penyalahgunaan dan serangan DDoS.
4. Gunakan HTTPS
Selalu gunakan HTTPS untuk mengenkripsi komunikasi antara client dan server. Jangan pernah mengirim data sensitif melalui HTTP.
5. Dokumentasi yang Jelas
Sediakan dokumentasi API yang lengkap — bisa menggunakan Swagger/OpenAPI, Postman Collection, atau tools lainnya.
6. Handling Error yang Konsisten
Kembalikan error dengan format yang konsisten, sertakan pesan yang jelas dan status code yang tepat.
7. Pagination untuk Data Besar
Jangan mengembalikan semua data sekaligus. Gunakan pagination:
GET /users?page=1&limit=20
Tools untuk Menguji REST API
- Postman — Tools paling populer untuk testing API.
- Insomnia — Alternatif Postman dengan antarmuka yang bersih.
- cURL — Command-line tool untuk request HTTP.
- Thunder Client — Ekstensi VS Code untuk testing API.
Kesimpulan
REST API adalah fondasi aplikasi modern. Dengan memahami prinsip dasar, HTTP method, status code, autentikasi, dan praktik terbaik, Anda dapat membangun API yang aman, skalabel, dan mudah digunakan.
Mulailah dari hal sederhana: buat API untuk CRUD (Create, Read, Update, Delete) sederhana, lalu kembangkan dengan autentikasi dan validasi. Semakin sering berlatih, semakin mahir Anda dalam merancang API yang baik.
Butuh bantuan membangun REST API untuk aplikasi Anda? Hubungi kami untuk konsultasi gratis.