3.7 KiB
Hasil Test API Lokal
✅ Status API Server
Base URL: http://localhost:8000
Router Script: public/router.php (untuk PHP built-in server)
📋 Hasil Test Endpoint
1. Health Check ✅
- Endpoint:
GET /health - Status: 200 OK
- Response:
{"status":"ok","time":1766023404}
2. Authentication ✅
- Endpoint:
POST /auth/v1/login - Status: 401 (Expected - butuh credentials valid)
- Note: Endpoint berfungsi, hanya butuh username/password yang valid
3. Frontend Locations ✅
- Endpoint:
GET /retribusi/v1/frontend/locations - Status: 401 (Expected - butuh JWT token)
- Response:
{"error":"unauthorized","message":"Authentication required"}
4. Dashboard Summary ✅
- Endpoint:
GET /retribusi/v1/dashboard/summary - Status: 401 (Expected - butuh JWT token)
- Response:
{"error":"unauthorized","message":"Invalid or expired token"} - Note: Route ditemukan dengan benar (bukan 404)
5. Realtime Snapshot ✅
- Endpoint:
GET /retribusi/v1/realtime/snapshot - Status: 401 (Expected - butuh JWT token)
- Note: Route ditemukan dengan benar
🔧 Perbaikan yang Dilakukan
1. Router Script untuk PHP Built-in Server
File: api-btekno/public/router.php
Dibuat router script untuk PHP built-in server agar routing bekerja dengan benar:
<?php
$file = __DIR__ . $_SERVER['REQUEST_URI'];
if (file_exists($file) && is_file($file) && $_SERVER['REQUEST_URI'] !== '/') {
return false;
}
require __DIR__ . '/index.php';
Cara menjalankan:
cd api-btekno/public
php -S localhost:8000 router.php
2. Konfigurasi Frontend
File: retribusi (frontend)/public/dashboard/js/config.js
Untuk development lokal, base URL sudah di-set ke:
return 'http://localhost/api-btekno/public';
Untuk PHP built-in server (port 8000), ubah menjadi:
return 'http://localhost:8000';
📝 Catatan
-
Status 401 = Normal: Semua endpoint protected mengembalikan 401 jika tidak ada JWT token yang valid. Ini adalah behavior yang benar.
-
Status 404 = Route tidak ditemukan: Jika endpoint mengembalikan 404, berarti route tidak terdaftar atau ada masalah dengan routing.
-
Router Script: PHP built-in server memerlukan router script untuk menangani routing dengan benar. Tanpa router script, semua request akan diarahkan ke file yang ada di filesystem.
🚀 Cara Menggunakan
Option 1: PHP Built-in Server (Development)
cd api-btekno/public
php -S localhost:8000 router.php
Frontend Config: http://localhost:8000
Option 2: Laragon/Apache (Production-like)
Setup virtual host di Laragon:
- Document Root:
C:\laragon\www\RETRIBUSI_BAPENDA\api-btekno\public - URL:
http://api.retribusi.testatauhttp://localhost/api-btekno/public
Frontend Config: http://api.retribusi.test atau http://localhost/api-btekno/public
✅ Checklist
- Health endpoint berfungsi
- Authentication endpoint berfungsi
- Frontend endpoints terdaftar
- Dashboard endpoints terdaftar
- Realtime endpoints terdaftar
- JWT middleware bekerja
- CORS middleware aktif
- Router script untuk PHP built-in server
- Test dengan JWT token valid (butuh login dulu)
- Test semua endpoint dengan token valid
🔐 Testing dengan Token Valid
Untuk test dengan token valid, perlu login dulu:
# 1. Login
curl -X POST http://localhost:8000/auth/v1/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"password"}'
# 2. Gunakan token dari response untuk test endpoint lain
curl http://localhost:8000/retribusi/v1/dashboard/summary?date=2025-01-18 \
-H "Authorization: Bearer YOUR_TOKEN_HERE"