一、说明
这篇文章主要记录我在开发过程中遇到的问题和解决办法,还有自己对相关问题和概念的认识,不代表使用webhook一定会遇到所有这些问题,也不是webhook的详细教程。
二、webhook是什么
(1)简单来说,webhook是一个能实时监控HTTP各类请求,检测到它所监控的请求,就会触发一系列写好的逻辑(最常见的是给客户端发送通知消息)。最主要的特点是前端不主动发送请求,完全由后端推送。
(2)对于第三方平台验权、登陆等没有前端界面做中转的场景,或者强安全要求的支付场景等,适合用 Webhook 做数据主动推送。
三、webhook使用
2.1 启动webhook服务
2.1.1进入对应项目对应git分支目录
-
在pycharm点击terminal进入该项目终端
-
git branch -l 查看该项目下所有分支
-
git checkout+分支名字 进入对应git分支
2.1.2启动服务
终端输入python3 manage.py rqworker启动服务
2.2 进入开发阶段
2.2.1 赋予对应的数据库表webhook属性
使用装饰器,以下截图仅限我目前项目,其他项目根据实际情况增加webhook属性
!!必须进行这一步该模型的HTTP请求才能被监听
2.2.2 监听请求并通知(也可以是其他逻辑,最常见是通知)
重点关注event和data,event是HTTP请求的操作,比如create,delete,update等等;data是HTTP请求响应体,为json格式;model_name是模型名字
简单示例:
以上代码当用户发送HTTP请求删除test模型时,会输出响应体