WebHooks - Web钩子
Posted justmine
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebHooks - Web钩子相关的知识,希望对你有一定的参考价值。
WebHooks,是一种HTTP交互的增强模式,是用户定义的http回调,这些回调由第三方的用户、开发人员自己定义、维护、管理,就好像允许别人挂载一条网线到你的Web网站或者应用程序的钩子上,来实时地收到你的推送信息,所以web钩子,由此得名。通过这种方式,为连接在一起的 Web Api 和 SaaS 服务提供发布/订阅模型,然后消除微服务架构事件总线(消息队列)这个对可用性起决定作用的组件,微服务之间的通信通过定义钩子来完成。这样我们不再需要单独部署高可用的消息队列来保障我们服务畅通,可以节省大量的人力、财力。
Web钩子工作机制
简单来讲,当我们的Saas系统发生变化的时候,比如用户下单、博客被评论、提交代码到仓库等,就会以Post的方式发送一个请求到响应钩子配置的Http回调。可以将WebHooks看做一种简洁的Sub/pub模式,只不过此时事件的载体是一个Http Post请求。
因为webhooks的简单性,目前很多主流的Saas系统都暴露有自己的Webhooks,比如:Dropbox, GitHub, GitLab, Instagram, MailChimp, PayPal, Slack, Trello,例如,我们可以为github代码提交定义一个web钩子;为Paypal的支付状态定义一个Web钩子;这样就能够实时地收到来自应用的推送信息,而不必要实时的轮训来请求实时的信息。
Webhook 处理管道
接收端
- 接收方负责处理来自给定发件人的 WebHook 的特定风格和强制实施安全性检查,以确保确实是预期的发件人发 WebHook 请求。
- 处理程序通常是用户代码运行处理特定的 WebHook。
参考链接:
https://en.wikipedia.org/wiki/Webhook
https://blogs.msdn.microsoft.com/webdev/2015/09/04/introducing-microsoft-asp-net-webhooks-preview
https://developer.github.com/webhooks/
https://github.com/aspnet/WebHooks
https://docs.microsoft.com/zh-cn/aspnet/webhooks
以上是关于WebHooks - Web钩子的主要内容,如果未能解决你的问题,请参考以下文章