近几年 Webhook 在前后端对接的开发模式中变得越来越流行,我们能用事件描述的事物越多,Webhook 的作用范围也就越大。Webhook 作为一个轻量的事件处理应用,正变得越来越实用。
例如,当我们需要上传一个视频,获得视频处理后的结果,但是要上传的视频很多,再排队进行处理,没法立刻获取到视频的处理结果。此时我们可以设计一个 hook url,当视频处理完成猴服务器自动向我们的 hook url 发送通知,告诉我们视频已经处理完毕。这就是 Webhook 最常见的用法。
其他的,像高安全的支付、微信登录 (OAuth) 、资源同步、资源创建与更新等等,我们都经常会用到 Webhook 来协助我们获取需要的数据。
那么 Webhook 是什么呢?我们如何绑定 Webhook 来实现数据任务推送呢?
今天本文就来介绍一下 Webhook 以及如何用工具绑定 Webhook 推送。
什么是Webhook?
其实 Webhook 是一个 API 概念,简单来说就是一种反向 API 机制,类似于触发器的一样。
准确的说 Webhook 是一种 web 回调或者 http 的 push API ,是向 APP 或者其他应用提供实时信息的一种方式。Webhook 在数据产生时立即发送数据,也就是你能实时收到数据。这一种不同于典型的 API,需要用了实时性需要足够快的轮询。这无论是对生产还是对消费者都是高效的,唯一的缺点是初始建立困难。
列举一个具体的场景:在 web serve 设计中,项目 A 想要获取项目 B 的数据,通常项目B需要提供一个 API,然后项目 A 请求项目 B 的 API,从而获得数据。而当新增了一个需求时,项目 A 需要实时获取到项目 B 的最新数据。
在常规做法中,我们需要不停去向项目 B 做轮询操作,以便获取到最新数据,这样的效率非常低,但是如果通过 Webhook 机制来设计的话,则可以变手动为自动。
Webhook 调试
调试 webhook 有时会十分复杂,因为 webhook 原则来说是异步的。你首先要解发他,然后等待,接着检查是否有响应。这是枯燥并且相当低效。但我们还可以通过其他方法来调试 Webhook:
-
明白 webhook 能提供什么,使用如 RequestBin 之类的工具收集 webhook 的请求;
-
用 cURL 或者 Postman 来模拟请求;
-
用 ngrok 这样的工具测试你的代码
-
用 Runscope 工具来查看整个流程。
如何绑定 Webhook 推送
这里我们使用 API 管理测试工具 Eolink 来演示。
- 点开 Eolink 主页面,选择左上侧的 设置图标 按钮,进入工作空间设置页面,点击 个人设置。
- 选择 webhook 模块,点击 新建服务调用
需要注意的是,webhook 模块需要管理员权限操作,普通成员不支持编辑
- 设置需要通知的产品模块以及事件、群聊机器人 url
示例配置:
- 通知 url
注意:需要用手机企业微信才可操作,机器人不支持微信联系人,仅支持三人以上的企业微信群聊
(1)打开企业微信群聊,点击右上角群设置-群机器人-添加机器人,编辑机器人名称
(2)点击右上角添加机器人,添加成功后,复制保存企业微信机器人Webhook,将 webhook 地址复制粘贴到通知 url 中。
- webhook 推送 API 变更通知
将 API 的状态从 已完成 修改为 设计中 ,进行 API 状态的切换测试,看群聊是否会有机器人提醒。
出现类似以上的提示即绑定 Webhook 成功啦!
以上即 Webhook 的相关信息简述以及如何通过 API 工具绑定 Webhook 推送示例。
但我们值得注意的是,当 Webhook 通过请求发送数据到应用后,就不再关注这些数据。也就是说如果我们的应用存在问题,数据会丢失。许多 Webhook 会处理回应,如果程序出现错误会重传数据。但如果应用处理这个请求并且依然返回一个错误,我们的应用就会收到重复数据,造成数据过多且重复的不必要损失。
因此,选择一款可靠的 API 工具能协助我们方便且安全地完成 Webhook 功能绑定以及特定数据返回。如果你也需要使用 Webhook 推送且正在寻找一款可靠的工具,我推荐上文演示工具 Eolink,它能设计、管理 API ,一键生成 API 文档,除此之外还能直接打通接口测试,一键发起 API 测试,方便快捷且功能强大。有兴趣可自行使用:www.eolink.com
标签:Webhook,绑定,webhook,API,微信,推送 From: https://www.cnblogs.com/apibest/p/16594594.html