📜  什么是 Webhook 以及如何使用它?(1)

📅  最后修改于: 2023-12-03 15:21:47.367000             🧑  作者: Mango

什么是 Webhook 以及如何使用它?

什么是 Webhook?

Webhook 是一个在不定时间隔下将信息传递给外部系统的工具。Webhook 可以将系统的事件发送到其他不同的系统中,并且不需要这些系统实现任何 API。例如,当您在特定位置提交一个表单时,您可以使 Webhook 将一个通知发送给另一个系统,该系统将处理该通知并进行相应的操作。

Webhook 的使用场景

Webhook 最常被用于现代 Web 应用程序中,并且被广泛地使用于实时服务、数据流通知、持续集成、版本控制集成、API 响应、单点登录等场景,例如:

  • 在 GitHub、GitLab 等版本管理服务中,Webhook 可以通过向已配置 Webhook 的 URL 发送事件通知,从而在您的工作流中自动触发每个事件。
  • 在云基础架构和微服务中,Webhook 可以大大简化运维流程并自动化集成操作。
  • 在消息通知中,Webhook 可以通知用户他们有新的消息。
  • 借助 Webhook 机制,我们可以实现自动化部署,例如:利用 GitHub 的 Webhook 功能在每次代码提交的时候自动触发 Jenkins 构建。
如何使用 Webhook?

使用 Webhook 算是管理类运维的基本功之一,主要分为以下几个部分:

1. 确定接收参数的地址

Webhook 最重要的组成部分是接收 Webhook 的 URL 地址。这个地址是你要将事件发送到的地方,是事件发生的第一站。您可以使用一个服务(例如,http://requestb.in/) 来设置一个自定义的 URL 地址来测试请求内容的格式。

2. 确定事件

Webhook 管理的重要部分之一是选择要获取和处理的事件。每个服务的 Webhook 支持的事件组合是不同的。根据适用的终端服务,请查看可用的 Webhook 事件。

3. 处理Webhook 请求

Webhook 意味着你需要构建一个端点,你将在此充当事件接收者角色。这个端点可以是你自己的服务器或者你选择的外部服务。当收到 Webhook 请求时,处理请求并将其导向正确的 API。这是一个类型为 HTTP Post 请求的 JSON 文件或形式编码的数据。有些服务允许 Webhook 接受 SSL 协议以确保数据传输的安全性。

4. 重试策略

由于 Webhook 不提供收据功能,因此,您将需要实现 Webhook 处理器的重试逻辑以确保请求被成功处理。如果请求失败,则可以实现在未来的时间尝试重新发送请求。

使用 Webhook 可以极大地简化您的持续集成、服务器自动化和其他调度任务,并消除使用 API 的需求。在需要将事件动态转移到其他系统或机器时,Webhook 是一个强大的工具。在 Webhook 中,您可以将事件动态地发送到一个外部系统,而不需要读入或处理任何数据。综上所述,Webhook 是一个非常有用的工具,并且在现代 Web 应用程序中被广泛地使用。