寫作 · AI 落地與營運 ·
API 串起來,不代表系統真的整合了
Connectivity ≠ Integration ≠ Production Ready。
文/Eason Kuo · Senior Vice President,國泰健康管理
電商平台與物流商的系統串接,又碰到一個很熟悉的場景。
一開始的討論通常很順利:
- 「有 API 嗎?」有。
- 「訂單可以傳過去嗎?」可以。
- 「物流狀態可以回傳嗎?」沒問題。
聽起來好像工程師把 API 接起來就好了。但真的開始整合,才發現串接成功,往往只是問題的開始。
API 串起來,不代表系統真的整合了。
真正的問題都長在例外裡
一旦開始處理真實訂單,問題就一個一個冒出來:
- 訂單取消了,物流商已經接單怎麼辦?
- 分批出貨後,訂單狀態怎麼回寫?
- API Timeout,但對方其實已經處理成功,要不要重送?
- 訂單已經出貨,客戶又申請退貨怎麼辦?
- 兩邊資料不一致,到底以誰為準?
這些問題沒有一個是「API 能不能通」的問題。它們是業務規則、責任歸屬和狀態管理的問題。在會議上說「沒問題」的時候,大家想的通常是 Happy Path;但系統上線後每天要面對的,是各種不 Happy 的 Path。
更麻煩的,其實是測試
每個系統單獨測試都正常,不代表整條流程真的正常。
電商平台說:「我們 API 回傳成功了。」物流商說:「我們也有收到資料。」兩邊都沒說錯。但真正要驗證的是:
- 客戶下單後,訂單能不能正確進入物流系統?
- 出貨、取消、退貨,狀態能不能完整同步?
- 網路中斷、資料重送,會不會產生重複訂單?
- 中間有一個環節失敗,能不能恢復?
- 修好一個問題,會不會讓原本正常的流程又壞掉?
這些都不是單純測到 API 回傳 200 OK 就能解決的。
要有人站在整條流程的角度
這也是為什麼我現在特別在意 End-to-End Testing。
測試不能只由各系統廠商各自完成,而是要有人站在整個業務流程的角度,確認從客戶下單、到物流出貨、再到狀態回寫與異常處理,整個流程真的可以運作。
而且不能只測 Happy Path。真正容易出問題的,往往是取消、重送、超時、部分成功,以及人工介入後的資料同步。
我現在會用四個問題,檢查一個整合專案有沒有想清楚:
- Ownership:資料與異常處理,誰負責?
- State:跨系統的狀態,如何保持一致?
- Testing:誰負責完整流程與異常情境的驗收?
- Reconciliation:資料錯了,如何發現、修正與追蹤?
這四題如果有一題答不出來,通常代表這個整合還停在「接起來」的階段。
三個不一樣的完成
我最大的體會是:
Connectivity ≠ Integration ≠ Production Ready
- Connectivity 是兩邊能交換資料。
- Integration 是兩邊能一起把一件事做對,包括出錯的時候。
- Production Ready 是這件事每天、在真實流量下都能穩定運作,出了問題有人知道、有人處理、能追蹤。
接起來只是起點。真的整合,是不同系統、不同廠商、不同團隊能一起把一件事做完,而且有人對結果負責。
最後
整合不是讓系統互傳資料就好,還要整條流程驗得過、出錯救得回來、上線後跑得穩。
下次在會議上聽到「有 API,接起來就好」的時候,我大概會先笑一下,然後問:那取消的時候呢?