REST API
Memahami konsep REST API dalam pengembangan aplikasi
Apa itu API
- Application Programming Interface: antarmuka untuk komunikasi antar aplikasi
- Memungkinkan aplikasi frontend berkomunikasi dengan backend
- Menggunakan protokol HTTP sebagai medium komunikasi
Apa itu REST
- Representational State Transfer: gaya arsitektur untuk merancang API
- Menggunakan resource sebagai pusat komunikasi
- Setiap resource diidentifikasi dengan URL unik
Prinsip REST
Resource-Based
- Setiap data dianggap sebagai resource
- Resource diidentifikasi dengan URL, contoh: /users, /products/123
Statelessness
- Setiap request berdiri sendiri tanpa menyimpan state di server
- Semua informasi yang diperlukan dikirim dalam satu request
- Server tidak perlu mengingat request sebelumnya
Representation
- Resource dapat direpresentasikan dalam berbagai format
- Format umum: JSON, XML, HTML
- JSON paling populer dalam pengembangan modern
Standard Methods
- Menggunakan method HTTP sesuai tujuannya
- GET untuk membaca, POST untuk membuat, PUT untuk memperbarui, DELETE untuk menghapus
Contoh REST API Endpoint
| Method | Endpoint | Fungsi |
|---|---|---|
| GET | /users | Mengambil daftar user |
| GET | /users/1 | Mengambil detail user dengan ID 1 |
| POST | /users | Membuat user baru |
| PUT | /users/1 | Memperbarui data user ID 1 |
| DELETE | /users/1 | Menghapus user ID 1 |
Format Response JSON
{
"id": 1,
"name": "Andi",
"email": "andi@example.com",
"created_at": "2024-01-01T00:00:00Z"
}Status Code dalam REST API
200 OK— request berhasil diproses201 Created— resource baru berhasil dibuat204 No Content— request berhasil tanpa data dikembalikan400 Bad Request— data request tidak valid401 Unauthorized— token autentikasi tidak valid404 Not Found— resource tidak ditemukan422 Unprocessable Entity— validasi data gagal500 Internal Server Error— kesalahan di server
Keuntungan REST API
- Mudah dipahami dan diimplementasikan
- Stateless memudahkan scaling server
- Format JSON ringan dan didukung banyak bahasa
- Bisa diakses dari berbagai platform: web, mobile, desktop