什么叫webhook?

Webhook:Webhook是一种通过HTTP回调实时通知系统或服务发生特定事件的机制,无需定期轮询。

  1. 什么是 Webhook?
    Webhook 是一个 API 概念,是微服务 API 的使用范式之一,也被成为反向 API,即前端不主动发送请求,完全由后端推送;举个常用例子,比如你的好友发了一条朋友圈,后端将这条消息推送给所有其他好友的客户端,就是 Webhook 的典型场景。

简单来说,Webhook 就是一个接收 HTTP POST(或GET,PUT,DELETE)的URL,一个实现了 Webhook 的 API 提供商就是在当事件发生的时候会向这个配置好的 URL 发送一条信息,与请求-响应式不同,使用 Webhook 你可以实时接受到变化。

这又是一种对 客户机-服务器 模式的逆转,在传统方法中,客户端从服务器请求数据,然后服务器提供给客户端数据(客户端是在拉数据),在 Webhook 范式下,服务器更新所需提供的资源,然后自动将其作为更新发送到客户端(服务器是在推数据),客户端不是请求者,而是被动接收方;这种控制关系的反转可以用来促进许多原本需要在远程服务器上进行更复杂的请求和不断的轮询的通信请求;通过简单地接收资源而不是直接发送请求,我们可以更新远程代码库,轻松地分配资源,甚至将其集成到现有系统中来根据 API 的需要来更新端点和相关数据,唯一的缺点是初始建立困难。

  1. 主要用途
    更新客户端,在资源新建或者更新时提供更新的、指定的数据。

  2. 常见 Webhook 使用场景
    对于第三方平台验权、登陆等 没有前端界面做中转的场景,或者强安全要求的支付场景等,适合用 Webhook 做数据主动推送,说白了就是在前端无从参与,或者因为前端安全问题不适合参与时,就是 Webhook 的场景;很显然 Webhook 也不是 Http 的替代品,不过的确是一种新的前后端交互方式。

如果客户端要长期监听某个任务的状态,按照正常的 API 调用的方式去做,那么必须不停得轮训服务器来获取当前状态;使用 Webhook 则无需轮训,通过 API 可以确定是否发生了更改,如果更改了只需要等待服务器推送信息过来,然后客户端更新就可以;git webhook其实也是这方面的应用。

  1. 使用说明
    Webhook 通过请求发送数据到你的应用后,就不再关注这些数据;也就是说如果你的应用存在问题,数据会丢失,许多 Webhook 会处理回应,如果程序出现错误会重传数据;如果你的应用处理这个请求并且依然返回一个错误,你的应用就会收到重复数据。

Webhook 可能会发出大量的请求,这样会造成你的应用阻塞,确保你的应用能处理这些请求

作者:MayerBin
链接:https://www.jianshu.com/p/9829986b4363
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

举个例子:
hook就是钩子,比如说你有一个微信机器人,可以在群里面发消息什么的。比如说这个时候,客户有一个场景,他们签到完成了之后,就要在这个群里面发一条消息。这个时候他们的系统就接入到你这个机器人提供的webook。然后当他们签到完成的时候,就调用这个web的这个API,然后实现这个功能。
大概就是这个意思,就是你可以去提供这样的一个接口啊,然后去集成到他们的系统里面。

简而言之就是:
Webhook就像是一个智能小助手,比如微信机器人,它提供了一个特殊的接口。其他系统可以通过调用这个接口,告诉这个小助手发生了什么事情。就好比你在微信群里玩一个签到游戏,当有人签到成功时,群里的小助手(Webhook)会受到通知,然后自动在群里发一条消息,告诉大家谁完成了签到。简单来说,Webhook就是让不同的系统能够实时地告诉彼此发生了什么事情,方便实现一些自动化的操作。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值