Lewati ke konten utama

API Examples (Evidence-Labeled)

Quick Summary

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 Partial ke Verified per endpoint.