technine.io
示意圖展示已訂閱的事件向 Webhook 端點傳送 HTTP 請求,接收系統核實後再處理。

指南

Webhook 是甚麼?系統如何按事件傳送更新

Webhook 會在指定事件發生時,向已設定的端點傳送 HTTP 請求。了解它與 API 輪詢的分別,以及接收端需要處理的安全和重試問題。

更新於

Webhook 是在指定事件發生時,向已設定端點傳送的 HTTP 請求。接收系統毋須反覆查詢服務有沒有更新;事件發生後,發送方可以主動通知它。GitHub 的Webhook 文件介紹這種按事件傳送資料的方式,並與間歇性輪詢 API 作比較。

Webhook 如何運作

接收應用程式提供端點網址,發送方則設定要回報哪些事件。事件發生時,發送方會送出包含事件資料的請求。接收端核實請求來源、檢查所需欄位,再執行獲准的操作,例如記錄更新,或把事件放入工作佇列稍後處理。

企業應用示例

以下示例僅供說明:送貨服務回報包裹狀態改變時,零售商系統可以接收 Webhook,更新訂單進度。員工之後可在訂單系統查看回報的狀態。實際做法要視乎服務商提供的事件資料和零售商的整合設計。

Webhook、API 和工作流程自動化

Webhook 負責傳送事件通知;API 定義軟件索取資料或要求執行操作的介面。接收 Webhook 後,系統可以再呼叫 API 取得完整資料。工作流程自動化則透過觸發條件、規則和操作協調工作,Webhook 可以是其中一種觸發方式。可參閱API 解說和工作流程自動化解說。

營運上的限制

成功送出請求,不代表接收端已成功處理。端點可能暫時無法使用,資料格式可能改變,發送方也可能重試,令同一事件送達多次。接收端應安全處理重試、記錄送達狀態、核實請求,並避免信任未驗證的內容。依賴即時更新前,應先了解發送方如何處理重試和失敗。

如需了解服務範圍,可參閱 technine.io 的系統整合及自動化服務。

常見問題

Webhook 是 API 嗎?

Webhook 會使用 HTTP 端點,但兩者描述不同概念:Webhook 把事件送給接收端;API 則是軟件索取資料或要求執行操作的介面。

Webhook 可以保證更新已成功處理嗎?

不能。請求可能無法送達端點,也可能在處理途中失敗。發送和接收系統都要有重試、錯誤記錄和復原安排。

同一個 Webhook 會送達多次嗎?

有可能。發送方遇到逾時或送達錯誤時,可能重試。接收端應識別重複事件,避免把同一項更新執行多次。

主要資料來源:GitHub Docs:About webhooks

諮詢WhatsApp
Webhook 是甚麼?系統如何按事件傳送更新 | technine.io