124 lines
3.7 KiB
Markdown
124 lines
3.7 KiB
Markdown
# 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
|
|
<?php
|
|
$file = __DIR__ . $_SERVER['REQUEST_URI'];
|
|
if (file_exists($file) && is_file($file) && $_SERVER['REQUEST_URI'] !== '/') {
|
|
return false;
|
|
}
|
|
require __DIR__ . '/index.php';
|
|
```
|
|
|
|
**Cara menjalankan**:
|
|
```bash
|
|
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:
|
|
```javascript
|
|
return 'http://localhost/api-btekno/public';
|
|
```
|
|
|
|
**Untuk PHP built-in server (port 8000)**, ubah menjadi:
|
|
```javascript
|
|
return 'http://localhost:8000';
|
|
```
|
|
|
|
## 📝 Catatan
|
|
|
|
1. **Status 401 = Normal**: Semua endpoint protected mengembalikan 401 jika tidak ada JWT token yang valid. Ini adalah behavior yang benar.
|
|
|
|
2. **Status 404 = Route tidak ditemukan**: Jika endpoint mengembalikan 404, berarti route tidak terdaftar atau ada masalah dengan routing.
|
|
|
|
3. **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)
|
|
```bash
|
|
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.test` atau `http://localhost/api-btekno/public`
|
|
|
|
**Frontend Config**: `http://api.retribusi.test` atau `http://localhost/api-btekno/public`
|
|
|
|
## ✅ Checklist
|
|
|
|
- [x] Health endpoint berfungsi
|
|
- [x] Authentication endpoint berfungsi
|
|
- [x] Frontend endpoints terdaftar
|
|
- [x] Dashboard endpoints terdaftar
|
|
- [x] Realtime endpoints terdaftar
|
|
- [x] JWT middleware bekerja
|
|
- [x] CORS middleware aktif
|
|
- [x] 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:
|
|
|
|
```bash
|
|
# 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"
|
|
```
|
|
|