webhook功能概述


1.什么是webhook?

  webhooks是一個api概念,是微服務api的使用范式之一,也被成為反向api,即:前端不主動發送請求,完全由后端推送。 舉個常用例子,比如你的好友發了一條朋友圈,后端將這條消息推送給所有其他好友的客戶端,就是 Webhooks 的典型場景。

  簡單來說,WebHook就是一個接收HTTP POST(或GET,PUT,DELETE)的URL。一個實現了WebHook的API提供商就是在當事件發生的時候會向這個配置好的URL發送一條信息。與請求-響應式不同,使用WebHooks,你可以實時接受到變化。

  這又是一種對客戶機-服務器模式的逆轉,在傳統方法中,客戶端從服務器請求數據,然后服務器提供給客戶端數據(客戶端是在拉數據)。在Webhook范式下,服務器更新所需提供的資源,然后自動將其作為更新發送到客戶端(服務器是在推數據),客戶端不是請求者,而是被動接收方。這種控制關系的反轉可以用來促進許多原本需要在遠程服務器上進行更復雜的請求和不斷的輪詢的通信請求。通過簡單地接收資源而不是直接發送請求,我們可以更新遠程代碼庫,輕松地分配資源,甚至將其集成到現有系統中來根據API的需要來更新端點和相關數據,唯一的缺點是初始建立困難。

2.主要用途 

  更新客戶端,在資源新建或者更新時提供更新的、指定的數據。

3.常見webhooks使用場景 

  對於第三方平台驗權、登陸等 沒有前端界面做中轉的場景,或者強安全要求的支付場景等,適合用 Webhooks 做數據主動推送。說白了就是在前端無從參與,或者因為前端安全問題不適合參與時,就是 Webhooks 的場景。很顯然 Webhooks 也不是 Http 的替代品,不過的確是一種新的前后端交互方式。 

  如果客戶端要長期監聽某個任務的狀態,按照正常的api調用的方式去做,那么必須不停得輪訓服務器來獲取當前狀態;使用webhook則無需輪訓,通過API 可以確定是否發生了更改,如果更改了只需要等待服務器推送信息過來,然后客戶端更新就可以。git webhook其實也是這方面的應用。

4.使用說明  

  1、webhook通過請求發送數據到你的應用后,就不再關注這些數據。也就是說如果你的應用存在問題,數據會丟失。許多webhook會處理回應,如果程序出現錯誤會重傳數據。如果你的應用處理這個請求並且依然返回一個錯誤,你的應用就會收到重復數據。 

  2、webhook會發出大量的請求,這樣會造成你的應用阻塞。確保你的應用能處理這些請求。

 

聲明:此博客為個人學習之用,如與其他作品雷同,純屬巧合,轉載請指明出處!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM