Arsitektur
Ringkasan
Backend Bitwewe adalah satu codebase Laravel yang mengekspos beberapa “permukaan” HTTP berbeda melalui RouteServiceProvider:
| Permukaan | Prefix URL | Middleware utama | Namespace controller |
|---|---|---|---|
| REST API (v1) | /api | api | App\Http\Controllers\Api |
| Web (Swagger) | /, /swagger | web | Blade / view |
| Panel admin | /admin | web, admin | App\Http\Controllers\Admin |
Definisi registrasi route:
$this->routes(function () {
Route::middleware('api')
->prefix('api')
->namespace($this->namespace . '\Api')
->group(base_path('routes/api.php'));
Route::middleware('web')
->group(base_path('routes/web.php'));
Route::prefix('admin')
->middleware(['web', 'admin'])
->as('admin.')
->namespace($this->namespace . "\\Admin")
->group(base_path('routes/admin.php'));
});
Struktur kode (cuplikan)
Struktur umum mengikuti konvensi Laravel:
routes/—api.php,web.php,admin.phpapp/Http/Controllers/Api/— API v1app/Http/Controllers/Admin/— modul backoffice (pengaturan, user, wallet, laporan, dll.)app/Models/— Eloquent modelsapp/Services/,app/Repositories/,app/Library/— logika bisnis dan integrasiapp/Jobs/,app/Listeners/,app/Events/— antrian dan eventconfig/— konfigurasi Passport, Firebase, websockets, dll.database/— migrasi & seeder
Alur request API v1
- Klien memanggil
https://<host>/api/.... - Grup middleware
apitidak mengaktifkan cookie session; binding route tetap ada. - Endpoint yang membutuhkan pengguna terautentikasi memakai
auth.xtoken(middleware custom) danverified:api(verifikasi email untuk guardapi) sesuai definisi diroutes/api.php. - Webhook kustodial/pembayaran sering dilindungi
leader.only(hanya instance tertentu yang memproses callback).
Panel admin
- Root web
/diarahkan ke/admin. - Admin memakai sesi web,
auth,verified, lalugoogle2fauntuk 2FA. - Nama route berprefiks
admin.*(lihatroutes/admin.php).
Observabilitas
Middleware global LogRequests mencatat request; integrasi opsional (mis. New Relic, DataDog) dapat dikonfigurasi di lingkungan produksi (lihat Dockerfile / variabel lingkungan).