Fix: Data inconsistency pada transisi tahun/bulan dan setup API lokal
- Implementasi fallback mechanism untuk daily_summary (threshold 5%) - Auto-detect base path untuk subdirectory installation - Perbaikan query dengan CAST(? AS DATE) untuk semua tanggal - Script utilities: check_daily_summary.php dan check_and_fix_hourly_summary.php - Setup .htaccess untuk routing Slim Framework - Test script untuk verifikasi API lokal - Dokumentasi SETUP_LOCAL_API.md
This commit is contained in:
142
SETUP_LOCAL_API.md
Normal file
142
SETUP_LOCAL_API.md
Normal file
@@ -0,0 +1,142 @@
|
||||
# Setup API Lokal untuk Testing
|
||||
|
||||
## Struktur Folder
|
||||
|
||||
```
|
||||
C:\laragon\www\
|
||||
├── api-btekno\ # Backend API
|
||||
│ └── public\ # Document root
|
||||
│ ├── index.php # Entry point
|
||||
│ └── .htaccess # URL rewrite
|
||||
└── Retribusi\ # Frontend
|
||||
└── public\ # Document root frontend
|
||||
```
|
||||
|
||||
## Cara Akses API Lokal
|
||||
|
||||
### Opsi 1: Menggunakan Path Langsung (Laragon/XAMPP)
|
||||
|
||||
Jika menggunakan Laragon/XAMPP dengan struktur folder di atas:
|
||||
|
||||
**Base URL:** `http://localhost/api-btekno/public`
|
||||
|
||||
**Contoh endpoint:**
|
||||
- Health: `http://localhost/api-btekno/public/health`
|
||||
- Login: `http://localhost/api-btekno/public/auth/v1/login`
|
||||
- Dashboard Summary: `http://localhost/api-btekno/public/retribusi/v1/dashboard/summary?date=2026-01-01`
|
||||
|
||||
### Opsi 2: Setup Virtual Host (Recommended)
|
||||
|
||||
Buat virtual host di Laragon untuk akses yang lebih clean:
|
||||
|
||||
1. Buka Laragon → Menu → Apache → Sites-enabled
|
||||
2. Buat file baru: `api-retribusi.test.conf`
|
||||
3. Isi dengan:
|
||||
|
||||
```apache
|
||||
<VirtualHost *:80>
|
||||
ServerName api-retribusi.test
|
||||
DocumentRoot "C:/laragon/www/api-btekno/public"
|
||||
|
||||
<Directory "C:/laragon/www/api-btekno/public">
|
||||
Options Indexes FollowSymLinks
|
||||
AllowOverride All
|
||||
Require all granted
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
```
|
||||
|
||||
4. Restart Apache di Laragon
|
||||
5. Edit `C:\Windows\System32\drivers\etc\hosts` (run as Administrator):
|
||||
```
|
||||
127.0.0.1 api-retribusi.test
|
||||
```
|
||||
|
||||
6. Akses: `http://api-retribusi.test/health`
|
||||
|
||||
**Base URL untuk config.js:** `http://api-retribusi.test`
|
||||
|
||||
## Test API Lokal
|
||||
|
||||
### 1. Test Health Endpoint
|
||||
|
||||
```bash
|
||||
# Via browser
|
||||
http://localhost/api-btekno/public/health
|
||||
|
||||
# Via curl
|
||||
curl http://localhost/api-btekno/public/health
|
||||
|
||||
# Expected response:
|
||||
# {"status":"ok","time":1767284697}
|
||||
```
|
||||
|
||||
### 2. Test Login
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost/api-btekno/public/auth/v1/login \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-API-KEY: POKOKEIKISEKOYOLO" \
|
||||
-d '{"username":"admin","password":"password"}'
|
||||
```
|
||||
|
||||
### 3. Test Dashboard Summary
|
||||
|
||||
```bash
|
||||
curl http://localhost/api-btekno/public/retribusi/v1/dashboard/summary?date=2026-01-01 \
|
||||
-H "Authorization: Bearer YOUR_TOKEN" \
|
||||
-H "X-API-KEY: POKOKEIKISEKOYOLO"
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Error: 404 Not Found
|
||||
|
||||
**Kemungkinan penyebab:**
|
||||
1. `.htaccess` belum ada di folder `public/`
|
||||
2. `mod_rewrite` belum aktif di Apache
|
||||
3. Path salah
|
||||
|
||||
**Solusi:**
|
||||
1. Pastikan file `api-btekno/public/.htaccess` ada
|
||||
2. Aktifkan `mod_rewrite` di Laragon:
|
||||
- Menu → Apache → Modules → Centang `rewrite_module`
|
||||
- Restart Apache
|
||||
3. Cek path: `http://localhost/api-btekno/public/health` (dengan `/public`)
|
||||
|
||||
### Error: 500 Internal Server Error
|
||||
|
||||
**Kemungkinan penyebab:**
|
||||
1. Database connection error
|
||||
2. `.env` file tidak ada atau salah konfigurasi
|
||||
3. PHP version tidak sesuai
|
||||
|
||||
**Solusi:**
|
||||
1. Cek file `api-btekno/.env` ada dan konfigurasi database benar
|
||||
2. Cek PHP version: `php -v` (harus >= 8.2.0)
|
||||
3. Cek error log di Laragon
|
||||
|
||||
### Error: CORS
|
||||
|
||||
**Kemungkinan penyebab:**
|
||||
1. CORS middleware belum aktif
|
||||
2. Origin tidak di-allow
|
||||
|
||||
**Solusi:**
|
||||
1. Pastikan `CorsMiddleware` sudah di-register di `index.php`
|
||||
2. Cek konfigurasi CORS di `src/Middleware/CorsMiddleware.php`
|
||||
|
||||
## Update Frontend Config
|
||||
|
||||
Setelah API lokal bisa diakses, update `Retribusi/public/dashboard/js/config.js`:
|
||||
|
||||
```javascript
|
||||
// Force local mode
|
||||
const FORCE_LOCAL_MODE = true;
|
||||
|
||||
// Atau auto-detect (akan otomatis detect localhost)
|
||||
const FORCE_LOCAL_MODE = false;
|
||||
```
|
||||
|
||||
Base URL akan otomatis: `http://localhost/api-btekno/public`
|
||||
|
||||
Reference in New Issue
Block a user