引言:什么是Webhooks,为什么我们应当关心。

397 阅读1分钟

Webhooks 是用户定义的的 HTTP 回调:一种以 Event 通知的方式,由 Event 源 App 通过 HTTP POST 向 Event 接收 App 推送 Event 通知的一种方法。这种工作方式与常规 API 调用有些许不同:

常规 APIWebhooks
工作方式Event接收App主动向Event源App发送请求,尝试获取最新的数据Event源App有更新时主动推送Event给Event接收App
实时性数据实时性/一致性取决于API请求频次数据保持实时更新
资源消耗无论源 Event App 侧是否存在数据更新,Event 接收 App 都要进行 API 请求,浪费资源只有在发生特定的事件时,才需要处理和传递数据

webhook1.png 图: 一个简单的流程图,左边是 Event 源 App,右边是 Event 接收 App,箭头表示通过 Webhook 请求主动讲事件推送过去

Webhooks的实施并非易事,因为需要考虑多个因素:

问题描述解决方案
安全性Fake请求攻击、重放攻击。请求签名、传输加密、API白名单、timestamp验证等。
失败处理需要考虑服务器宕机、网络故障等因素可以引入重试机制。
投递保证确保每个请求都能被正确及时地传送到预定的Endpoint最多一次,至少一次,只有一次三种模式。
测试需要确认 Webhooks 在实际环境中的表现可以使用函数猫来模拟和测试Webhook。

下一讲,我们将深入研究使用Webhooks的好处:实时性、高效性、以及自动化。希望你继续跟随我们一起,揭开Webhooks带来的无尽可能性的神秘面纱。