Perintah cURL – API PHP Native di Localhost
Perintah cURL – API PHP Native di Localhost

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