Perintah cURL – API PHP Native di Localhost
1. Health Check (cek server hidup)
curl -X GET http://localhost/api-php-native/public/api/v1/health
???? Output contoh:
{"success":true,"data":{"status":"ok","time":"2025-09-19T10:00:00Z"}}
2. Login (dapatkan token)
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"}'
???? Output:
{"success":true,"data":{"token":"eyJhbGciOiJI..."}}
3. Ambil Semua Users (protected, butuh token)
curl -X GET "http://localhost/api-php-native/public/api/v1/users?page=1&per_page=5" \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9..."
4. Ambil User Berdasarkan ID
curl -X GET http://localhost/api-php-native/public/api/v1/users/1 \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9..."
5. Tambah User Baru (role admin saja)
curl -X POST http://localhost/api-php-native/public/api/v1/users \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9..." \ -H "Content-Type: application/json" \ -d '{"name":"Mahasiswa","email":"mhs@example.com","password":"secret123","role":"user"}'
6. Update User
curl -X PUT http://localhost/api-php-native/public/api/v1/users/2 \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9..." \ -H "Content-Type: application/json" \ -d '{"name":"Mahasiswa Update","role":"admin"}'
7. Hapus User
curl -X DELETE http://localhost/api-php-native/public/api/v1/users/2 \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9..."
8. Upload File
curl -X POST http://localhost/api-php-native/public/api/v1/upload \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9..." \ -F "file=@/path/to/file.pdf"
???? Catatan: ganti /path/to/file.pdf dengan path file nyata di komputer kamu.
9. Cek Rate Limit (kalau implementasi aktif)
Jika request melebihi limit, respon:
{"success":false,"error":{"code":429,"message":"Too Many Requests","errors":[]}}
Jika ada masalah, dapat menggunakan teknik ini:
Di PowerShell, curl adalah alias untuk Invoke-WebRequest (iwr), dan opsi -X tidak dikenali—makanya muncul error “A parameter cannot be found that matches parameter name 'X'”.
Pilih salah satu cara di bawah:
Cara 1 — Pakai curl.exe asli (paling gampang)
Tambahkan .exe supaya PowerShell tidak memakai alias iwr.
Health
curl.exe "http://localhost/api-php-native/public/api/v1/health"
Login (JSON)
curl.exe -X POST "http://localhost/api-php-native/public/api/v1/auth/login" ` -H "Content-Type: application/json" ` -d '{ "email":"admin@example.com", "password":"semuelyp" }'
Users (protected)
curl.exe "http://localhost/api-php-native/public/api/v1/users?page=1&per_page=5" ` -H "Authorization: Bearer <TOKEN>"
Tips PowerShell: pakai single quotes
'...'untuk body JSON supaya kutip ganda di dalamnya tidak perlu di-escape.
Cara 2 — Pakai sintaks PowerShell (Invoke-WebRequest)
Kalau ingin tetap pakai alias PowerShell:
Health
iwr -Method GET -Uri "http://localhost/api-php-native/public/api/v1/health"
Login
iwr -Method POST -Uri "http://localhost/api-php-native/public/api/v1/auth/login" ` -ContentType "application/json" ` -Body '{ "email":"admin@example.com", "password":"admin123" }'
Users (protected)
iwr -Method GET -Uri "http://localhost/api-php-native/public/api/v1/users?page=1&per_page=5" ` -Headers @{ Authorization = "Bearer <TOKEN>" }
Cara 3 — Pakai CMD/Git Bash
Di CMD atau Git Bash, curl adalah curl asli, jadi perintah awalmu akan bekerja:
curl -X GET http://localhost/api-php-native/public/api/v1/health