Struktur URL REST API yang baik menggunakan kata benda jamak untuk sumber daya (resource), menerapkan hierarki relasi yang jelas, serta menghindari kata kerja pada endpoint karena aksi HTTP (GET, POST, PUT, DELETE) telah mewakili operasi yang dilakukan.
Desain endpoint yang konsisten memudahkan pengembang front-end maupun pihak ketiga untuk memahami dan mengonsumsi layanan tanpa dokumentasi yang rumit.
Aturan Dasar Penamaan URL REST API
Sebelum melihat contoh spesifik, berikut adalah kaidah universal yang wajib diterapkan dalam merancang endpoint RESTful:
- Gunakan huruf kecil (lowercase) sepenuhnya.
- Gunakan tanda hubung (-) untuk memisahkan kata majemuk (kebab-case).
- Gunakan bentuk jamak (plural nouns) untuk nama koleksi data (contoh:
/usersbukan/user). - Jangan menyertakan ekstensi file seperti
.jsonatau.xmldi dalam URL.
Tabel Contoh Struktur Endpoint REST API
Berikut adalah matriks standar pemetaan operasi CRUD ke dalam struktur URL REST API berdasarkan studi kasus entitas Users dan Orders:
| Aksi / Operasi | Metode HTTP | Contoh Struktur URL (Endpoint) | Keterangan |
|---|---|---|---|
| Mendapatkan semua data | GET | /api/v1/users |
Mengambil daftar seluruh pengguna |
| Mendapatkan data spesifik | GET | /api/v1/users/42 |
Mengambil detail pengguna dengan ID 42 |
| Membuat data baru | POST | /api/v1/users |
Menambahkan pengguna baru (payload di body) |
| Memperbarui seluruh data | PUT | /api/v1/users/42 |
Mengganti seluruh data pengguna ID 42 |
| Memperbarui sebagian data | PATCH | /api/v1/users/42 |
Mengubah atribut tertentu (misal: email saja) |
| Menghapus data | DELETE | /api/v1/users/42 |
Menghapus pengguna dengan ID 42 |
Contoh Penanganan Relasi Antar Sumber Daya
Ketika sebuah entitas memiliki hubungan dengan entitas lain (misalnya seorang pengguna memiliki beberapa pesanan), struktur URL harus merefleksikan hierarki tersebut secara logis.
# Mendapatkan semua pesanan milik pengguna tertentu (ID 42)
GET /api/v1/users/42/orders
# Mendapatkan detail pesanan spesifik (ID 10) milik pengguna (ID 42)
GET /api/v1/users/42/orders/10
# Membuat pesanan baru untuk pengguna (ID 42)
POST /api/v1/users/42/orders
Praktik Terbaik Penggunaan Query Parameters
Untuk proses penyaringan (filtering), pengurutan (sorting), dan pembatasan halaman (pagination), jangan membuat endpoint baru. Gunakan query parameters pada URL yang sama.
# Filtering dan Pagination
GET /api/v1/products?category=electronics&status=active&page=2&limit=10
# Sorting berdasarkan harga secara descending
GET /api/v1/products?sort=-price
Kesalahan Umum yang Harus Dihindari
Desainer API pemula sering kali terjebak pada beberapa kesalahan struktural berikut:
- Menyertakan kata kerja: Hindari
/api/v1/getUsersatau/api/v1/createUser. Biarkan metode HTTP (GET/POST) yang mendefinisikan aksinya. - Inkonsistensi penamaan: Mencampur penggunaan singular (
/user) dan plural (/orders) dalam satu aplikasi. - Struktur bertingkat yang terlalu dalam: Hindari nested URL lebih dari dua level (misal:
/users/42/orders/10/items/5/reviews). Lebih baik gunakan parameter ID tunggal di root jika memungkinkan.