Endpoint
Menggunakan kata jamak untuk penamaan resource seperti users, roles, settings, transactions dan lain-lain. Hindari menggunakan camel case (getUsers) dan snake case (get_users).
Jangan pernah menggunakan nama fungsi CRUD dalam URI
Kita tidak boleh menggunakan URI untuk menunjukkan fungsi CRUD. URI hanya boleh digunakan untuk mengidentifikasi sumber daya dan bukan untuk tindakan unik apa pun terhadapnya. Harus menggunakan method HTTP untuk menunjukkan fungsi CRUD mana yang dijalankan.
| Method | Endpoint | Description |
|---|---|---|
| GET | /users | Mengambil semua data user |
| GET | /users/1 | Mengambil data user dengan id 1 |
| POST | /users | Membuat user baru |
| PUT | /users/1 | Mengubah seluruh data user id 1 |
| PATCH | /users/1 | Mengubah sebagian data user id 1 |
| DELETE | /users/1 | Menghapus data user id 1 |
Gunakan komponen query untuk memfilter koleksi URI
Query digunakan untuk mengolah sumber daya yang diurutkan, difilter, atau dibatasi berdasarkan atribut sumber daya tertentu. Dalam hal ini, jangan membuat API baru – sebagai gantinya, gunakan requirement pengurutan, pemfilteran, dan penomoran halaman di API koleksi sumber daya dan teruskan parameter input sebagai parameter kueri.
- /orders?payment_status=pending
- /users?sort_by=date&sort_method=asc
Gunakan requirement/action sebagai pengganti endpoint baru
Gunakan requirement category/status atau apapun yang sesuai dengan pengkategorian data tanpa membuat endpoint baru.
- /participants/resend-email-payment-success/1
- /participants/resend-email-payment-reject/1
- /participants/resend-email-submission/1
Status kategori, tipe ataupun hal yang membedakan dalam action bisa dibuat sebagai query parameter, sehingga cukup satu endpoint saja. Contoh Perubahan : payment -> category , success/reject -> status, submission -> category
- /participants/1/resend-email/{category}/{status}
Reference : https://restfulapi.net/resource-naming/