Skip to content

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):

RouteTarget 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.