理解 Webhook:面向开发人员的简明指南
想象一下:您下载沃尔玛应用程序,将一盒价值 24 美元的 Lindt 巧克力和一块价值 2.50 美元的 Feastables 巧克力棒添加到购物车,前往结账,然后看到额外的 0.50 美元费用。
您的总额为 27 美元。
您添加账单详细信息(无论是信用卡还是 PayPal),然后点击“订购”按钮。
以下是幕后发生的事情:
- 该应用程序告诉后端,“嘿,我们收到一份 27 美元的订单。”
- 后端将信息转发给支付服务(这可能是沃尔玛的内部系统或像 PayPal 这样的外部提供商)。
- 支付服务处理付款并使用订单 ID 和确认来响应后端。
- 后端将此订单 ID 传回应用程序。
- 该应用程序会显示结帐屏幕,您可以完成付款。
现在,作为用户,您知道付款已完成,前端(应用程序)也知道。
但这里有一个转折:后端还不知道。
这时,webhook 就可以发挥作用了。
什么是 Webhook?
Webhooks,也称为 Web 回调、HTTP 推送 API 或反向 API,是一种在特定事件发生时一个应用程序向另一个应用程序发送实时数据的方式。
与需要您发出请求才能获取数据的传统 API 不同,webhook 会在数据可用时自动将其发送给您。
他们就像一个朋友,一旦有消息就会立即打电话给你,而你不需要不断地询问他们。
Webhook 在我们的示例中如何工作
让我们重新审视沃尔玛的例子。
付款完成后,支付提供商(例如 PayPal)使用 webhook 通知沃尔玛的后端:
- 支付提供商向沃尔玛的后端发送一个 POST 请求,内容是:“嘿,订单 ID #12345 的付款已成功。这是付款 ID 作为证明。”
- 沃尔玛的后端收到此确认并更新其记录。
- 现在后端知道付款已完成,它可以触发下一步,例如启动交付或向您发送确认电子邮件。
如果没有这个 webhook,则只有两种选择:
- 后端可以重复轮询支付提供商的 API 以获取支付状态,这是非常低效且耗费资源的。
- 前端可以向后端发送带有支付 ID 的信号以触发状态检查,但这种方法不可靠——尤其是在用户关闭应用程序或失去连接时。
使用 webhook 可以消除这些低效率并确保无缝通信。
Webhooks 与 API:有什么区别?
- API:您(客户端)在需要时请求数据。可以将其视为拉取数据。
- Webhooks:当事件发生时,服务器会自动向你发送数据。可以将其视为推送数据。
两者都有各自的用例,但 webhook 对于实时更新特别有用,例如付款确认、发货状态更改或通知。
Webhook 为何如此出色
- 实时更新:您不必等待或手动检查更新。
- 效率:无需重复调用 API 来检查事件的状态。
- 自动化:它们支持应用程序之间的无缝工作流程。
说到 API,我一直在研究一种名为LiveAPI的超级方便的工具。
它旨在让开发人员轻松编写 API 文档。
使用 LiveAPI,您可以快速生成交互式 API 文档,允许用户直接从浏览器执行 API。
如果您厌倦了手动为 API 创建文档,这个工具可能会让您的生活更轻松。
以下是有关我们如何开始使用 LiveAPI 的简短视频:在 YouTube 上观看。
总结
Webhook 是一个简单但功能强大的概念,它可以改变应用程序的通信方式。
无论您处理付款、通知还是实时更新,webhook 都可以帮助您构建高效、自动化的工作流程。
如果您还犹豫是否深入研究 webhook,那就从小处着手吧。
试验支付网关的 webhook 或为项目设置一个简单的 webhook。
您使用它们的次数越多,您就会越感受到它们的实用性。
查看:
