WebHook 浅谈
什么是 Webhook?
参考文章: https://zhuanlan.zhihu.com/p/193996563 ,https://studygolang.com/articles/15056
- Webhook 是一个 API 概念, 是微服务 API 的使用范式之一, 也被成为反向 API.
- 即前端不主动发送请求,完全由后端推送;
一个实现了 Webhook 的 API 提供商就是在当事件发生的时候会向这个配置好的 URL 发送一条信息,与
请求-响应式
不同,使用 Webhook 你可以实时接受到变化。
这又是一种对 客户机-服务器 模式的逆转,在传统方法中,客户端从服务器请求数据,然后服务器提供给客户端数据(客户端是在拉数据),在 Webhook 范式下,服务器更新所需提供的资源,然后自动将其作为更新发送到客户端(服务器是在推数据),客户端不是请求者,而是被动接收方;这种控制关系的反转可以用来促进许多原本需要在远程服务器上进行更复杂的请求和不断的轮询的通信请求;通过简单地接收资源而不是直接发送请求,我们可以更新远程代码库,轻松地分配资源,甚至将其集成到现有系统中来根据 API 的需要来更新端点和相关数据,唯一的缺点是初始建立困难。
主要用途
更新客户端,在资源新建或者更新时提供更新的、指定的数据。
常见 Webhook 使用场景
如果客户端要长期监听某个任务的状态,按照正常的 API 调用的方式去做,那么必须不停得轮训服务器来获取当前状态;使用 Webhook 则无需轮训,通过 API 可以确定是否发生了更改,如果更改了只需要等待服务器推送信息过来,然后客户端更新就可以;git webhook其实也是这方面的应用。
总结
总的说,webhook 和普通的 API 请求是一样的,都是事件,都是为了在系统间共享信息。API 轮询在之前可能是一个比较好的解决方案.