近幾年 Webhook 在前后端對接的開發模式中變得越來越流行,我們能用事件描述的事物越多,Webhook 的作用范圍也就越大,Webhook 作為一個輕量的事件處理應用,正變得越來越實用,
例如,當我們需要上傳一個視頻,獲得視頻處理后的結果,但是要上傳的視頻很多,再排隊進行處理,沒法立刻獲取到視頻的處理結果,此時我們可以設計一個 hook url,當視頻處理完成猴服務器自動向我們的 hook url 發送通知,告訴我們視頻已經處理完畢,這就是 Webhook 最常見的用法,
其他的,像高安全的支付、微信登錄 (OAuth) 、資源同步、資源創建與更新等等,我們都經常會用到 Webhook 來協助我們獲取需要的資料,
那么 Webhook 是什么呢?我們如何系結 Webhook 來實作資料任務推送呢?
今天本文就來介紹一下 Webhook 以及如何用工具系結 Webhook 推送,
什么是Webhook?
其實 Webhook 是一個 API 概念,簡單來說就是一種反向 API 機制,類似于觸發器的一樣,
準確的說 Webhook 是一種 web 回呼或者 http 的 push API ,是向 APP 或者其他應用提供實時資訊的一種方式,Webhook 在資料產生時立即發送資料,也就是你能實時收到資料,這一種不同于典型的 API,需要用了實時性需要足夠快的輪詢,這無論是對生產還是對消費者都是高效的,唯一的缺點是初始建立困難,
列舉一個具體的場景:在 web serve 設計中,專案 A 想要獲取專案 B 的資料,通常專案B需要提供一個 API,然后專案 A 請求專案 B 的 API,從而獲得資料,而當新增了一個需求時,專案 A 需要實時獲取到專案 B 的最新資料,
在常規做法中,我們需要不停去向專案 B 做輪詢操作,以便獲取到最新資料,這樣的效率非常低,但是如果通過 Webhook 機制來設計的話,則可以變手動為自動,

Webhook 除錯
除錯 webhook 有時會十分復雜,因為 webhook 原則來說是異步的,你首先要解發他,然后等待,接著檢查是否有回應,這是枯燥并且相當低效,但我們還可以通過其他方法來除錯 Webhook:
-
明白 webhook 能提供什么,使用如 RequestBin 之類的工具收集 webhook 的請求;
-
用 cURL 或者 Postman 來模擬請求;
-
用 ngrok 這樣的工具測驗你的代碼
-
用 Runscope 工具來查看整個流程,
如何系結 Webhook 推送
這里我們使用 API 管理測驗工具 Eolink 來演示,
- 點開 Eolink 主頁面,選擇左上側的 設定圖示 按鈕,進入作業空間設定頁面,點擊 個人設定,

- 選擇 webhook 模塊,點擊 新建服務呼叫
需要注意的是,webhook 模塊需要管理員權限操作,普通成員不支持編輯

- 設定需要通知的產品模塊以及事件、群聊機器人 url
示例配置:

- 通知 url
注意:需要用手機企業微信才可操作,機器人不支持微信聯系人,僅支持三人以上的企業微信群聊
(1)打開企業微信群聊,點擊右上角群設定-群機器人-添加機器人,編輯機器人名稱

(2)點擊右上角添加機器人,添加成功后,復制保存企業微信機器人Webhook,將 webhook 地址復制粘貼到通知 url 中,

- webhook 推送 API 變更通知
將 API 的狀態從 已完成 修改為 設計中 ,進行 API 狀態的切換測驗,看群聊是否會有機器人提醒,


出現類似以上的提示即系結 Webhook 成功啦!
以上即 Webhook 的相關資訊簡述以及如何通過 API 工具系結 Webhook 推送示例,
但我們值得注意的是,當 Webhook 通過請求發送資料到應用后,就不再關注這些資料,也就是說如果我們的應用存在問題,資料會丟失,許多 Webhook 會處理回應,如果程式出現錯誤會重傳資料,但如果應用處理這個請求并且依然回傳一個錯誤,我們的應用就會收到重復資料,造成資料過多且重復的不必要損失,
因此,選擇一款可靠的 API 工具能協助我們方便且安全地完成 Webhook 功能系結以及特定資料回傳,如果你也需要使用 Webhook 推送且正在尋找一款可靠的工具,我推薦上文演示工具 Eolink,它能設計、管理 API ,一鍵生成 API 檔案,除此之外還能直接打通介面測驗,一鍵發起 API 測驗,方便快捷且功能強大,有興趣可自行使用:www.eolink.com
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/502105.html
標籤:其他
