WebHook 本质上是一种 回调机制,简单理解就是:
👉 当某个事件发生时,系统会自动向指定的 URL 发送一个 HTTP 请求(通常是 POST),通知你这个事件已经发生。
🔹 详细解释
被动调用
Web API 通常需要你主动去“拉取数据”(比如轮询接口),
而 WebHook 是 事件驱动 的,事件一发生,它就会“推送数据”给你。
工作原理
你先在某个系统里配置一个 URL(你的服务器地址)。
当事件触发时,该系统会向这个 URL 发送一个 HTTP 请求,通常包含事件数据(JSON 格式)。
你的服务器收到请求后,可以进行相应处理。
常见应用场景
支付回调:用户付款成功后,支付平台(如支付宝/微信)会调用你配置的 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 请求。