首頁>影視>

本文概述了 webhook 的概念,以及如何在 Mule 中製作 webhook 回調和實現 webhook。

什麼是 Webhook?

Webhook 是一種輕量級 API,可支持由事件觸發的單向數據共享。換句話說,Webhook 是應用程序在所需事件發生時發送的自動消息或觸發器。

例如,假設有一個電影信息應用程序。我們需要知道最近是否有新電影上映。在 API 實現/輪詢的情況下,我們需要隨時向電影應用程序發出請求以瞭解詳細信息。即使沒有新的電影發佈,我們也需要一次又一次地嚮應用程序發送請求以繼續檢查是否有新的發佈,這是多餘的。

這就是 webhook 發揮作用的地方。通過 webhook 實現,當有更新時,電影應用程序將調用它所連接的應用程序中的 webhook,並提供所需的信息。這意味著每當有新電影發佈時,電影應用程序都會向用戶發送通知,從而簡化流程。

根據Jeff Lindsay的說法,從技術上講,webhook 是“使用 HTTP 製作的用戶定義的回調” 。webhook URL 通常是一個 HTTP POST 實現。每當掛鉤的應用程序發生所需的事件時,都會向 webhook URL 發出 HTTP POST 請求,並且託管 webhook 的應用程序將採取必要的操作。託管 webhook 的應用程序可能具有訂閱和取消訂閱 webhook 的功能,以適應多個應用程序。

Mule 中的 Webhook

在 Mule 中處理 webhook 時,有兩個方面。一種是做webhook回調,另一種是使用Mule實現webhook。

1. Mule 應用程序的 Webhook 回調

如前所述,webhook 通常是 HTTP 實現。它通常是 POST,但在某些情況下,它是一個 GET 實現。從 Mule 應用調用 webhook 類似於發送通知或電子郵件。如果此回調不應影響應用程序的實際實現,則必須異步執行。為此,您可以在 Async 塊中執行此操作。一個簡單的 HTTP 請求組件可用於使用所需的標頭和有效負載對 webhook URL 進行 HTTP POST/GET 調用。

在這裡,我們將看到如何從 Mule 應用程序調用 Slack webhook。請參考此 鏈接在 Slack 中創建傳入的 webhook。現在我們有一個類似於https://hooks.slack.com/services/******/*******/*******.

在下面的應用程序中,只要訂單數量大於 1000,就會觸發 Slack webhook。

每當訂單數量大於 1000 時,結果將是在 Slack 渠道中發佈的訂單號。

這裡已經解釋了一個基本示例,但 Anypoint 平臺帶有 250 多個開箱即用的連接器,可與各種系統集成。利用連接器並創建 Mule Flows 以使用來自源系統的事件並將消息推送到註冊的回調 URL。

我們只做了一個 webhook 回調。如果我們需要在發生事件時對不同的 webhook 進行多次回調,我們可以使用訂閱模型實現訂閱和取消訂閱事件。將此實現為帶有端點以訂閱和取消訂閱的 REST API。一旦我們有了它,我們就可以在需要的事件發生時對所有訂閱者進行回調。

2. Webhook 實現

您可以在 Mule 中開發一個 webhook,併為應用程序/用戶提供 URL,以便在發生所需事件時進行回調。開發 webhook 類似於 REST API。首先,使用端點和可接受的輸入結構為 webhook 準備一個 API 規範。您可以根據要求使用 POST/GET 端點。然後,使用 Anypoint studio 實現相同的操作,只要有 webhook 回調就執行操作。webhook 實現可以是某個應用程序的一部分,或者您也可以有一個獨立的 webhook 實現。

在下面的示例中,我們有一個簡單的 webhook 實現,每當向 HTTP 偵聽器發出/webhook具有可接受輸入的 POST 請求時,它將執行一組特定的操作。

要遵循 API 主導的連接,您可以首先設計、實施、註冊 API for Webhook,然後使其可被發現。一旦 webhook 準備就緒,就可以與用戶共享 webhook URL 以及請求的可接受輸入負載格式。

7
最新評論
  • 陽臺上養樹莓,結果多,果子好吃,帶你來看看
  • 《蒼蘭訣》細節埋伏筆:結黎與丹音是親姐妹,一切都是容昊的陰謀