Simulator — def-exsport-3rdparty-simulator
Reverse proxy yang duduk di depan tiga API third-party asli, dengan dashboard untuk memaksa response error per service. Di dev, backend menunjuk ke sini, bukan ke API asli.
Cara halaman ini diverifikasi
Dibaca pada 2026-09-15 dari index.js, views/ dan package.json. Checkout lokal: /Volumes/xpro/erisristemena/nodejs/def-exsport-3rdparty-simulator.
Stack
Express 5.1, http-proxy 1.18, ejs (view dashboard), axios, dotenv. Plain JavaScript. Script: start = node index.js, start:dev = nodemon index.js. Port dari PORT (default 3000). Single-branch: main only.
Apa yang dilakukan
Ia mem-proxy tiga prefix route ke service asli (tiap target bisa ditimpa lewat env):
| Route | Target default |
|---|---|
/biteship/* | api.biteship.com |
/wms/* | open-api.powerbiz.asia |
/doku/* | api-sandbox.doku.com |
Object errorSimulation di memori ({wms, doku, biteship}, semua default off) di-toggle saat runtime lewat POST /simulate/:service dengan {enable}, dan ditampilkan di dashboard EJS di GET /. Saat sebuah service di-toggle on, endpoint kuncinya mengembalikan HTTP 500: Biteship /v1/draft_orders, WMS /order/create, DOKU semua call. Ia juga mencatat metadata request/response (dibatasi oleh LOG_BODY_MAX_BYTES, default 8192; toggle ENABLE_PROXY_RESPONSE_BODY_LOGGING).
Ini alasan kenapa "payment / delivery / WMS gagal di dev" sering bukan bug backend — cek dashboard dulu. Di dev, base URL backend menunjuk ke sini, di https://proxy.exsport.bdt.dev/{biteship,doku,wms}. Lihat Third parties.