什么是 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 时,有两个方面。一种是做webhook回调,另一种是使用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。一旦我们有了它,我们就可以在需要的事件发生时对所有订阅者进行回调。
您可以在 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 以及请求的可接受输入负载格式。
| 留言与评论(共有 0 条评论) “” |