01 / DECIDE
架構決策
第一次 production call 前,或多個功能共用同一組憑證與可靠度政策時採用。
先建立由 server 擁有的單一 adapter,統一處理驗證、request ID、timeout 與錯誤,不要讓 UI 到處直接呼叫平台。 先把 input、output、state 與 side effect 畫成一條可觀察路徑,再決定 把 API request 做成產品邊界 要放在哪一層。
02 / BUILD
三步實作
- 01
框定合約
先寫下 caller、資料分類、成功條件、timeout、取消與 ownership。第一次 production call 前,或多個功能共用同一組憑證與可靠度政策時採用。
- 02
建立單一路徑
只實作一條 end-to-end path,保留 request correlation、typed state 與可逆 failure handling。先建立由 server 擁有的單一 adapter,統一處理驗證、request ID、timeout 與錯誤,不要讓 UI 到處直接呼叫平台。
- 03
證明結果
把驗收寫成可重跑的 fixture、contract test 或 browser test。Contract test 證明遮罩、timeout、重試分類與 provider request identifier 的傳遞。
03 / BOUND
Production 邊界
長效 API key 只留在 server,限制外送資料,並讓 caller 看得到取消與重試語意。
04 / PROVE
驗收證據
Contract test 證明遮罩、timeout、重試分類與 provider request identifier 的傳遞。
SOURCE / HTTP
可重現來源探針
curl -fsSI 'https://developers.openai.com/api/docs/quickstart' | sed -n '1,5p'