WebHook 本质上是一种 回调机制,简单理解就是:
👉 当某个事件发生时,系统会自动向指定的 URL 发送一个 HTTP 请求(通常是 POST),通知你这个事件已经发生。


🔹 详细解释

  1. 被动调用

    • Web API 通常需要你主动去“拉取数据”(比如轮询接口),

    • 而 WebHook 是 事件驱动 的,事件一发生,它就会“推送数据”给你。

  2. 工作原理

    • 你先在某个系统里配置一个 URL(你的服务器地址)。

    • 当事件触发时,该系统会向这个 URL 发送一个 HTTP 请求,通常包含事件数据(JSON 格式)。

    • 你的服务器收到请求后,可以进行相应处理。

  3. 常见应用场景

    • 支付回调:用户付款成功后,支付平台(如支付宝/微信)会调用你配置的 WebHook,通知你“支付成功”。

    • CI/CD 部署:GitHub、GitLab 在代码提交后,会调用 WebHook 通知你的 Jenkins/服务器进行自动构建。

    • 消息推送:第三方服务(如 Slack、钉钉、企业微信)收到事件后会通过 WebHook 把消息推送到你的系统。


🔹 举个例子

假设你有一个电商网站,需要知道用户是否完成支付:

  • 你在支付宝后台配置了一个 WebHook URL(比如 https://example.com/pay/notify)。

  • 用户支付完成后,支付宝会向这个 URL 发送一条 POST 请求:

POST /pay/notify HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "order_id": "123456",
  "status": "SUCCESS",
  "amount": "99.00"
}
  • 你的服务器收到后,更新订单状态为“已支付”。


🔹 总结

  • Web API:我要去问(拉取数据)。

  • WebHook:它主动告诉我(推送数据)。

要记住:WebHook 是由事件驱动的回调机制,本质就是一个 HTTP 请求