API Examples (Evidence-Labeled)
Semua contoh di halaman ini wajib punya label sumber:
- REAL-SANITIZED: diturunkan dari source code/controller nyata, disanitasi.
- MOCK: ilustrasi format, belum ada bukti runtime.
Runtime Status
- Runtime backend belum di-hit langsung pada sesi dokumentasi ini.
- Jadi semua contoh saat ini statusnya Partial.
- Daftar item yang harus diverifikasi runtime ada di Verification Matrix (
VM-002,VM-003,VM-004).
1) Auth
Login (API V1)
Source label: REAL-SANITIZED (code-derived)
Evidence: app/Http/Resources/API/V1/Auth/LoginResource.php
POST /api/v1/user/login
Content-Type: application/json
{
"credential": "head.admin",
"password": "***"
}
{
"access_token": "<sanitized-token>",
"role": "head_admin"
}
Logout (API V1)
Source label: REAL-SANITIZED (code-derived)
Evidence: app/Http/Controllers/API/V1/Auth/LoginController.php, SuccessResponseTrait.php
POST /api/v1/user/logout
Authorization: Bearer <token>
{
"data": {}
}
2) SPB
Get SPB Number
Source label: REAL-SANITIZED (code-derived)
Evidence: app/Http/Controllers/API/V1/SPB/PM/SPBController.php@getSPBNo
GET /api/v1/project/spb
Authorization: Bearer <token>
{
"no_spb": "<sanitized-spb-no>"
}
Create SPB (duplicate number case)
Source label: REAL-SANITIZED (code-derived)
Evidence: SPBController.php@create
POST /api/v1/project/spb/SPB-XXXX
Authorization: Bearer <token>
Content-Type: application/json
{
"delivery_date": "2026-03-15",
"items": [
{ "name": "Besi Beton 12mm", "quantity": 500, "unit": "batang", "notes": "urgent" }
]
}
{
"message": "Sudah ada SPB dengan nomor ini"
}
Update SPB saat status sudah approved
Source label: REAL-SANITIZED (code-derived)
Evidence: SPBController.php@update
{
"error": {
"code": 403,
"title": "Perubahan Tidak Diizinkan",
"message": "SPB sudah disetujui, tidak dapat diubah.",
"errors": []
}
}
3) PO Payment Receipt
Calculate total nominal PO
Source label: REAL-SANITIZED (code-derived)
Evidence: app/Http/Controllers/API/V1/PO/POPaymentReceiptController.php@calculate
GET /api/v1/po-payment-receipt/calculate?pos[]=101&pos[]=102
{
"total_nominal_po": 38850000
}
Catatan: nama query param final di client wajib verifikasi runtime (
VM-004).
4) Admin Payment Price Change
Create change price request
Source label: REAL-SANITIZED (code-derived)
Evidence: app/Http/Controllers/Admin/Pembayaran/PerubahanHargaController.php@store
POST /admin/pembayaran/{po}/ubah-harga
Cookie: <session>
Content-Type: application/x-www-form-urlencoded
requested_nominal=15000000&reason=Koreksi+tagihan
{
"message": "Permintaan perubahan harga berhasil dikirim."
}
Update change price request
Source label: REAL-SANITIZED (code-derived)
Evidence: PerubahanHargaController.php@update
{
"message": "Perubahan nominal yang diajukan berhasil diperbarui."
}
5) Contoh MOCK (belum ada bukti runtime)
Membership Register
Source label: MOCK (structure only)
Reason: route ada, tetapi format response final belum terlihat eksplisit di controller pada review ini.
POST /membership/register
Content-Type: application/json
{
"name": "Budi Santoso",
"phone": "6281234567890",
"password": "***",
"password_confirmation": "***"
}
{
"data": {
"user_id": 77
}
}
Catatan Verifikasi
- Status: Partial
- Scope: Sudah ada evidensi API nyata dari source code (sanitized), tetapi belum ada capture request/response runtime dari staging/production.
- Action: Ambil 5 sample runtime (Auth, SPB, PO, Payment, Membership) lalu update label dari
PartialkeVerifiedper endpoint.