什么是网络钩子?
Webhook 是一个 HTTP 请求,由源系统中的事件触发并发送到目标系统,通常带有数据负载。Webhooks 是自动化的,换句话说,当源系统中触发其事件时,它们会自动发送出去。
这为一个系统(源)提供了一种在事件发生时与另一个系统(目标)“对话”(HTTP 请求)的方法,并共享有关发生的事件的信息(请求负载)。
- 简而言之,Webhooks 用于将一个系统中发生的事件传达给另一个系统,并且它们通常共享有关该事件的数据。
POST 或 GET Webhook
您可能会收到 GET 或 POST 请求形式的 Webhooks 请求,具体取决于 Webhooks 提供商。GET Webhook 请求很简单,并将其有效负载作为查询字符串附加到 Webhook URL。POST Webhook 请求的负载位于请求正文中,并且还可能包含身份验证令牌等属性。
工作原理:
-
注册 Webhook: Webhook 的提供方(生产者)首先需要注册 Webhook,通常提供一个 URL,用于接收事件触发时的回调。
-
定义触发事件: Webhook 的提供方定义哪些事件会触发 Webhook,例如,新订单创建、用户注册等。
-
触发 Webhook: 当注册的事件发生时,Webhook 的提供方将相应的数据组织成 HTTP 请求,并发送到预先注册的 URL。
-
处理回调: Webhook 的消费方(消费者)需要提供一个能够接收 HTTP 请求的端点,用于处理回调请求,执行相应的操作。
-
处理错误和重试: 由于网络问题或其他原因,Webhook 请求可能会失败。因此,Webhook 消费者通常需要实现错误处理和重试机制。
总体而言,Webhook 是一种灵活且强大的机制,用于构建系统之间的实时集成和通信。