微軟發布了ASP.NET WebHooks預覽版

jopen 9年前發布 | 10K 次閱讀 ASP.NET

英文原文:Microsoft Releases ASP.NET WebHooks Preview

微軟近期發布了 ASP.NET WebHooks 的預覽版,這是一個可用于創建及使用 Webhook 功能的庫。WebHooks 支持 MVC 5 及 WebApi 2。

Webhook 是一種通過 HTTP 實現用戶自定義回調函數的模式。客戶可以選擇訂閱某些類型的事件,并在這些事件實際發生時以 POST 請求的方式接收這些事件。Webhook 的一大要點在于它是使用 HTTP 實現的,這也意味著利用或實現這項技術無需任何新的基礎設施的支持。

ASP.NET WebHooks 為 Webhook 的發送與接收操作提供了基礎構建塊。在接收端,它提供了一種通用的模型,用于接收并處理來自于 Webhook 提供者的事件。而在發送端,它則提供了對管理訂閱與發送事件功能的支持。

InfoQ 與來自微軟 ASP.NET 團隊的 Henrik F Nielsen 和 Brady Gaster 進行了一次訪談,以了解該項目更多的細節信息。

InfoQ:成立 ASP.NET WebHooks 這一項目的動機是什么?

ASP.NET WebHooks 成立的動機有兩方面

1、WebHooks 為 HTTP 服務的整合提供了一種協議模式,從而能夠通過 HTTP 請求的形式建立一種非常簡單的事件通知模型。通過對某個 Webhook 的訂閱,你就能夠關注其他服務上的更新,并在更新時獲得通知。這樣一來,就有大量的整合場景成為可能。你將能夠與其他的服務進行交互、在變更時獲得通知、并進行相應的操作。這種整合可以包括任何形式,例如在 Dropbox 中上傳了某個新文件、在 Trello 中新建了一個 Issue、或是通過 PayPal 進行了一次支付操作。隨著 WebHooks 的應用不斷增多,這種應用場景也將產生指數級的增長。

2、雖說這一模式本身并不復雜,但還是有一些基本的規則需要處理。包括安全模型、數據格式、以及基于這一基本模式的各種變體。麻煩的地方在于,目前大多數的 Webhook 提供者在處理這些基本規則時都存在著細微的差別。這種差別就像雪花一樣,雖然每片雪花看起來都很相似,但多多少少存在著一些特別之處。ASP.NET WebHooks 的目的就是處理所有這些繁瑣的部分,提供一個統一的用戶模型,并讓用戶能夠快速開始進行在服務間進行整合的任務

InfoQ:Webhook 除了 HTTP 之外并沒有其他任何確立的協議,那么在發送方是否會存在某些方面的限制因素?(作為接收者來說)ASP.NET WebHooks 是否能夠自動兼容那些目前已經提供 Webhook 的服務呢?

HN:我們已經在項目中提供了針對各種服務的 Webhook,例如 Azure 
Alerts、BitBucket、Dropbox、GitHub、Kudu、Instagram、 
MailChimp、 PayPal、Pusher、Salesforce、Slack、Stripe、Trello,以及 WordPress,不過要添加對其他提供者的支持也是很簡單的,并且所支持服務的名單還在不斷地增長中。事實上,對于 Kudu 和 BitBucket 的支持是來自于社區所提交的 pull 請求,我們也正在添加對更多的提供者的支持。

InfoQ:到 WebHooks 正式發布為止,它的路線圖是怎樣的?

HN:關于正式發布的計劃,我們現在還沒有什么正式的說法,不過我們很樂于傾聽來自社區的反饋,并接受他們的貢獻,包括 pull 請求和各種建議

BG:我們從社區中獲得了一些反饋,他們希望能夠對 WebHook 接收消息的功能進行調試,就像在本地進行調式一樣。他們也欣賞遠程調試的想法,但更愿意能夠通過點擊“F5”來啟動他們的項目并發送 Webhook。我們目前正在為某些想法設計原型,爭取為 Visual Studio 帶來這一特性。

ASP.NET WebHooks 是一個開源項目,托管在 GitHub 平臺上。

來自: InfoQ
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!