Pertemuan 1 – Pengantar API & HTTP
Capaian Pembelajaran
-
Mahasiswa mampu menjelaskan apa itu API dan bagaimana API bekerja melalui protokol HTTP.
-
Mahasiswa memahami konsep method HTTP, status code, dan header.
-
Mahasiswa bisa membedakan REST API dengan RPC API.
-
Mahasiswa mampu melakukan uji sederhana ke endpoint menggunakan cURL dan Postman.
1. Konsep Dasar API
-
API (Application Programming Interface): perantara komunikasi antar aplikasi/sistem.
-
Dalam konteks web → API biasanya berbasis HTTP dan menggunakan format data JSON.
-
API memungkinkan client (misalnya aplikasi mobile/web) berkomunikasi dengan server untuk tukar data.
Contoh:
Client (mobile/web) <──HTTP──> Server (API) <──DB──> Database
2. HTTP: Protokol di Balik API
a) HTTP Method
Metode utama yang dipakai dalam REST API:
| Method | Kegunaan | Contoh |
|---|---|---|
| GET | Mengambil data | GET /users |
| POST | Membuat data baru | POST /users |
| PUT | Mengupdate data (replace) | PUT /users/1 |
| PATCH | Mengupdate sebagian data | PATCH /users/1 |
| DELETE | Menghapus data | DELETE /users/1 |
b) HTTP Status Code
Memberi tahu hasil eksekusi request.
| Kode | Kategori | Arti |
|---|---|---|
| 200 OK | Success | Request berhasil |
| 201 Created | Success | Data berhasil dibuat |
| 400 Bad Request | Client Error | Format request salah |
| 401 Unauthorized | Client Error | Token/auth salah/kurang |
| 403 Forbidden | Client Error | Tidak ada izin |
| 404 Not Found | Client Error | Endpoint/data tidak ada |
| 500 Internal Server Error | Server Error | Kesalahan server |
c) HTTP Header
-
Request Header → metadata yang dikirim client
-
Content-Type: application/json -
Authorization: Bearer <token>
-
-
Response Header → metadata dari server
-
Content-Type: application/json -
X-RateLimit-Remaining: 58
-
3. REST vs RPC
-
REST (Representational State Transfer)
-
Resource-oriented → fokus pada data (resource).
-
URL merepresentasikan entitas.
-
Method HTTP punya arti standar.
-
Contoh:
-
GET /users→ ambil semua user -
POST /users→ buat user baru
-
-
-
RPC (Remote Procedure Call)
-
Action-oriented → fokus pada fungsi/aksi.
-
URL = nama fungsi/prosedur.
-
Method sering hanya
POST. -
Contoh:
-
POST /getUsers -
POST /createUser
-
-
???? Saat ini REST API lebih populer untuk web services karena standar & mudah dipahami.
4. Demo: Mengakses API
a) Dengan cURL (CLI)
Tes endpoint health check (misalnya sudah ada /api/v1/health):
# GET request curl -X GET http://localhost/api-php-native/public/api/v1/health # POST login (body JSON) curl -X POST http://localhost/api-php-native/public/api/v1/auth/login \ -H "Content-Type: application/json" \ -d '{"email":"admin@example.com","password":"admin123"}'
b) Dengan Postman (GUI)
-
Buka Postman → New Request.
-
Method:
GET, URL:http://localhost/api-php-native/public/api/v1/healthKlik Send → lihat response JSON.
-
Method:
POST, URL:http://localhost/api-php-native/public/api/v1/auth/loginBody → raw JSON:
{"email":"admin@example.com","password":"admin123"}Klik Send → dapatkan token.
5. Diskusi Kelas
-
Mengapa API butuh status code standar?
-
Apa bedanya REST dan RPC?
-
Apa kelemahan hanya menggunakan
POSTuntuk semua operasi? -
Kenapa perlu header
Content-TypedanAuthorization?