什么是 Webhook?
1. 什么是 Webhook?
Webhook 是一個 API 概念,是微服務(wù) API 的使用范式之一,也被成為反向 API,即前端不主動發(fā)送請求,完全由后端推送;舉個常用例子,比如你的好友發(fā)了一條朋友圈,后端將這條消息推送給所有其他好友的客戶端,就是 Webhook 的典型場景。
簡單來說,Webhook 就是一個接收 HTTP POST(或GET,PUT,DELETE)的URL,一個實現(xiàn)了 Webhook 的 API 提供商就是在當(dāng)事件發(fā)生的時候會向這個配置好的 URL 發(fā)送一條信息,與請求-響應(yīng)式不同,使用 Webhook 你可以實時接受到變化。
這又是一種對 客戶機-服務(wù)器 模式的逆轉(zhuǎn),在傳統(tǒng)方法中,客戶端從服務(wù)器請求數(shù)據(jù),然后服務(wù)器提供給客戶端數(shù)據(jù)(客戶端是在拉數(shù)據(jù)),在 Webhook 范式下,服務(wù)器更新所需提供的資源,然后自動將其作為更新發(fā)送到客戶端(服務(wù)器是在推數(shù)據(jù)),客戶端不是請求者,而是被動接收方;這種控制關(guān)系的反轉(zhuǎn)可以用來促進許多原本需要在遠程服務(wù)器上進行更復(fù)雜的請求和不斷的輪詢的通信請求;通過簡單地接收資源而不是直接發(fā)送請求,我們可以更新遠程代碼庫,輕松地分配資源,甚至將其集成到現(xiàn)有系統(tǒng)中來根據(jù) API 的需要來更新端點和相關(guān)數(shù)據(jù),唯一的缺點是初始建立困難。
2. 主要用途
更新客戶端,在資源新建或者更新時提供更新的、指定的數(shù)據(jù)。
3. 常見 Webhook 使用場景
對于第三方平臺驗權(quán)、登陸等 沒有前端界面做中轉(zhuǎn)的場景,或者強安全要求的支付場景等,適合用 Webhook 做數(shù)據(jù)主動推送,說白了就是在前端無從參與,或者因為前端安全問題不適合參與時,就是 Webhook 的場景;很顯然 Webhook 也不是 Http 的替代品,不過的確是一種新的前后端交互方式。
如果客戶端要長期監(jiān)聽某個任務(wù)的狀態(tài),按照正常的 API 調(diào)用的方式去做,那么必須不停得輪訓(xùn)服務(wù)器來獲取當(dāng)前狀態(tài);使用 Webhook 則無需輪訓(xùn),通過 API 可以確定是否發(fā)生了更改,如果更改了只需要等待服務(wù)器推送信息過來,然后客戶端更新就可以;git webhook其實也是這方面的應(yīng)用。
4. 使用說明
Webhook 通過請求發(fā)送數(shù)據(jù)到你的應(yīng)用后,就不再關(guān)注這些數(shù)據(jù);也就是說如果你的應(yīng)用存在問題,數(shù)據(jù)會丟失,許多 Webhook 會處理回應(yīng),如果程序出現(xiàn)錯誤會重傳數(shù)據(jù);如果你的應(yīng)用處理這個請求并且依然返回一個錯誤,你的應(yīng)用就會收到重復(fù)數(shù)據(jù)。
Webhook 可能會發(fā)出大量的請求,這樣會造成你的應(yīng)用阻塞,確保你的應(yīng)用能處理這些請求。
作者:MayerBin
鏈接:https://www.jianshu.com/p/9829986b4363
來源:簡書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
總結(jié)
以上是生活随笔為你收集整理的什么是 Webhook?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kubesphere报错收集
- 下一篇: 启动docker容器时报错:iptabl