什么是webhook?
1.什么是webhook?
webhooks是一个api概念,是微服务api的使用范式之一,也被成为反向api,即:前端不主动发送请求,完全由后端推送。 举个常用例子,比如你的好友发了一条朋友圈,后端将这条消息推送给所有其他好友的客户端,就是 Webhooks 的典型场景。
简单来说,WebHook就是一个接收HTTP POST(或GET,PUT,DELETE)的URL。一个实现了WebHook的API提供商就是在当事件发生的时候会向这个配置好的URL发送一条信息。与请求-响应式不同,使用WebHooks,你可以实时接受到变化。
这又是一种对客户机-服务器模式的逆转,在传统方法中,客户端从服务器请求数据,然后服务器提供给客户端数据(客户端是在拉数据)。在Webhook范式下,服务器更新所需提供的资源,然后自动将其作为更新发送到客户端(服务器是在推数据),客户端不是请求者,而是被动接收方。这种控制关系的反转可以用来促进许多原本需要在远程服务器上进行更复杂的请求和不断的轮询的通信请求。通过简单地接收资源而不是直接发送请求,我们可以更新远程代码库,轻松地分配资源,甚至将其集成到现有系统中来根据API的需要来更新端点和相关数据,唯一的缺点是初始建立困难。
2.主要用途
更新客户端,在资源新建或者更新时提供更新的、指定的数据。
3.常见webhooks使用场景
对于第三方平台验权、登陆等 没有前端界面做中转的场景,或者强安全要求的支付场景等,适合用 Webhooks 做数据主动推送。说白了就是在前端无从参与,或者因为前端安全问题不适合参与时,就是 Webhooks 的场景。很显然 Webhooks 也不是 Http 的替代品,不过的确是一种新的前后端交互方式。
如果客户端要长期监听某个任务的状态,按照正常的api调用的方式去做,那么必须不停得轮训服务器来获取当前状态;使用webhook则无需轮训,通过API 可以确定是否发生了更改,如果更改了只需要等待服务器推送信息过来,然后客户端更新就可以。git webhook其实也是这方面的应用。
4.使用说明
1、webhook通过请求发送数据到你的应用后,就不再关注这些数据。也就是说如果你的应用存在问题,数据会丢失。许多webhook会处理回应,如果程序出现错误会重传数据。如果你的应用处理这个请求并且依然返回一个错误,你的应用就会收到重复数据。
2、webhook会发出大量的请求,这样会造成你的应用阻塞。确保你的应用能处理这些请求。
什么是webhook?相关推荐
- Rokid webhook 指南 手把手教你做个懒人
若琪用户 Amadeus 在社区里分享过很多视频.当你进门10秒后还未关闭房门,若琪会一直报警提醒:当你走进门后将门反锁的那一刻,若琪会为你播报今天的天气.为你播放设定的轻音乐. 看到这些视频中对传感 ...
- 一个简单的例子学会github repository的webhook
2019独角兽企业重金招聘Python工程师标准>>> github的webhook是个有用的功能,允许开发人员指定一个服务器的url.当开发者对github仓库施加操作,比如提交代 ...
- webhook简单部署
为什么80%的码农都做不了架构师?>>> 1.webhook在Linux里是以www用户运行sheell 的,所以以www用户生成秘钥 //首先将/etc/passwd的www ...
- [Gitlab]使用Webhook实现前端项目自动发布
喜闻乐见的背景故事时间--承接[prerender-spa-plugin]--微型Vue项目的静态化利器,官网上线之后,就开始琢磨,每次改动都得上服务器部署一下,是不是有点麻烦了,是时候该整个自动化部 ...
- webhook自定义服务器,GO 使用Webhook 实现github 自动化部署
1. 下载github-webhook工具: wget http://img.sgfoot.com/github-webhook1.4.1.linux-amd64.tar.gz 2. 运行github ...
- 模型转换状态已支持Webhook!
各位朋友知道,使用Forge转换服务得到Forge Viewer格式,在提交转换请求后,需要再有一个过程,调用另外一个服务,定期询问是否转换完毕.这种方式对于应用程序本身并不是很有效率,而且为避免任务 ...
- gitlab 钩子 php,gitlab通过webhook.php自动部署标签
//git webhook 自动部署脚本 $savePath = "/home/house/wxorder/"; $requestBody = file_get_contents( ...
- webhook php自动部署,git利用webhook实现自动部署
在项目部署时,之前采用的方式是登录服务器手动去pull代码,这样做很麻烦而且在服务器管理上也存在一些风险,github和gitlab都提供有webhook功能,可以在项目发生某些变化时,系统向指定的U ...
- 怎么把项目推到gitlab上_Gitlab利用Webhook+jenkins实现自动构建与部署
之前部署了Gitlab的代码托管平台和Jenkins的代码发布平台.通常是开发后的代码先推到Gitlab上管理,然后在Jenkins里通过脚本构建代码发布. 这种方式每次在发版的时候,需要人工去执行j ...
- Webhook与Jenkins自动构建(上)
2019独角兽企业重金招聘Python工程师标准>>> webhook是个在特定情况下通过web触发的一种api,Web 钩子用于在项目发生相关事件时通知外部服务器,gitlab的w ...
最新文章
- AI推理与Compiler
- windows备份与还原和两个主机的相互通信
- gnokii 短信猫 中文安装使用文档
- 医疗器械软件安全性级别判定
- 将 gitblog 的博客内容搬迁到 CSDN
- 天河机场RFID技术应用浅析
- java 转dwg转图片_dwg转pdf要怎么转换
- Git学习总结(3)——代码托管平台简介
- JEECG(三) JEECG minidao如何封装自己的 多表联合查询 分页查询
- 在RedHat中安装新字体
- 【Tensor】(张量)的基本概念和操作
- Visual C++ 2010 (中文)学习版 安装教程
- 2022.8.16-8.18深圳核芯物联作为唯一的蓝牙AOA定位基站厂家受邀参加第十届中国电子信息博览会
- 抖音小店无货源,如何找到适合自己店铺的达人,精选联盟玩法分享
- 截取计算机全屏画面的方法有,全屏截图快捷键的快捷键是什么
- 封装Vue组件的原则及技巧
- JVM-04.垃圾回收机制
- 什么是子网掩码?如何设置子网掩码?
- 跨平台App开发的新趋势
- 易中天品汉代风云人物08:韩信成败之谜