什么是Web Hook
什么是web hook?
webhook是一个api概念,是为服务API的使用范式之一,也被成为反向api,是一种通过通常的callback,去增加或者改变web page或者web app行为的方法.这些callback可以由第三方用户和开发者维持当前,修改,管理,而这些使用者与网站或者应用的原始开发并没有关联. webhook这个词是由Jeff Lindsay在2007年在计算机科学hook项目第一次提出的. webhook与异步编程中”订阅-发布模型”非常类似,一端触发事件,一端监听执行.
Webhooks是”user-defined HTTP回调”。它们通常由一些事件触发,例如”push 代码到repo”,或者”post 一个评论到博客”。
当事件发生时,源网站可以发起一个HTTP请求到webhook配置的URL。配置之后,用户可以通过在一个站点触发事件,之后再调用另一个站点的行为。可以是任何操作。
普通用户可以使用CI系统或者通知bug追踪系统触发build。
由于webhook使用HTTP协议,因此可以直接被集成到web service。所以他们有时会被用来构建消息队列服务,例如一些RESTful的例子:IronMQ和RestMS。
主要用途
更新客户端,在资源新建或者更新时提供更新的、指定的数据.
常见的webhook使用场景
对于第三方平台验权,登录等,没有前段界面做中转的场景,或者强安全要求的支付场景等,适合webhook做数据主动推送.说白了,就是在前端无从参与,或者因为前端安全问题不适合参与时,就是webhook的场景很显然webhook也不是http的替代品. 如果客户端要长期监听某个任务的状态,按照正常的api调用的方式去做,那么必须不停得轮询服务器来获取当前状态,使用webhook则无需轮询,通过api可以确定是否发生了更改,如果更改了只需要等待服务器推送信息过来,然后客户端更新就可以.git webhook其实也是这方面的应用.
使用说明
webhook通过请求发送数据到你的应用后,就不再关注这些数据. 也就是说如果你的应用存在问题,数据会丢失.许多webhook会处理回应,如果程序出现错误会重传数据.如果你的应用处理这个请求并依然返回一个错误,你的应用就会收到重复的数据.
webhook会发出大量的请求,这样会造成你的应用阻塞.确保你的应用能处理这些请求.
操作流程
先创建字节的web服务,用于接收webhook的返回结果;
将创建好的web服务部署在一台外网可以访问的服务器上;
登录账户,在[发送设置]板块中创建[webhook] ,选择特定事件,选择api_user ,填写web服务所对应的url,检测url成功,webhook就创建成功了