webhook 究竟是什么呢?
Webhook是一个API概念,webhoo是一种web回调或者http的push API。Webhook作为一个轻量的事件处理应用,正变得越来越有用。
具体的说,webhook 是应用给其它应用提供实时信息的一种方式。信息一产生,Webhook在数据产生时立即发送数据和把它发送给已经注册的应用这就意味着你能实时得到数据。
不像传统的 APIs 方式,你需要用轮询的方式来获得尽可能实时的数据。这一点使得 webhook 不管是在发送端还是接收端都非常高效。
例如:项目A需要实时获取到项目B的最新数据:
- 传统做法:项目A需要不停轮询去拉取项目B的最新数据
- webhook机制:项目A提供一个webhook url,每次项目B创建新数据时,便会向项目A的hook地址进行请求,项目A收到项目B的请求,然后对数据进行处理。
webhooks应用:
git push之后,Git如何通知Jenkins对应Job的工作区实时构建?
答案就是:Git webhook机制发出请求,告知Jenkins服务器你要自动构建了。
webhook与异步编程中"订阅-发布模型"非常类似,一端触发事件,一端监听执行。
注意:webhook仅仅是"异步编程模型"的一个实现。
补充知识点:
webhook与websocket:
- Websockets(通常)用于服务器到浏览器的通信。
- webhook更多的是服务到服务之间。
参考链接:Webhook到底是个啥?