- 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
3.5 KiB
3.5 KiB
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:
- Buka Laragon → Menu → Apache → Sites-enabled
- Buat file baru:
api-retribusi.test.conf - Isi dengan:
<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>
-
Restart Apache di Laragon
-
Edit
C:\Windows\System32\drivers\etc\hosts(run as Administrator):127.0.0.1 api-retribusi.test -
Akses:
http://api-retribusi.test/health
Base URL untuk config.js: http://api-retribusi.test
Test API Lokal
1. Test Health Endpoint
# 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
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
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:
.htaccessbelum ada di folderpublic/mod_rewritebelum aktif di Apache- Path salah
Solusi:
- Pastikan file
api-btekno/public/.htaccessada - Aktifkan
mod_rewritedi Laragon:- Menu → Apache → Modules → Centang
rewrite_module - Restart Apache
- Menu → Apache → Modules → Centang
- Cek path:
http://localhost/api-btekno/public/health(dengan/public)
Error: 500 Internal Server Error
Kemungkinan penyebab:
- Database connection error
.envfile tidak ada atau salah konfigurasi- PHP version tidak sesuai
Solusi:
- Cek file
api-btekno/.envada dan konfigurasi database benar - Cek PHP version:
php -v(harus >= 8.2.0) - Cek error log di Laragon
Error: CORS
Kemungkinan penyebab:
- CORS middleware belum aktif
- Origin tidak di-allow
Solusi:
- Pastikan
CorsMiddlewaresudah di-register diindex.php - Cek konfigurasi CORS di
src/Middleware/CorsMiddleware.php
Update Frontend Config
Setelah API lokal bisa diakses, update Retribusi/public/dashboard/js/config.js:
// 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