加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

django – 混合Websockets和REST

发布时间:2020-12-20 13:15:59 所属栏目:Python 来源:网络整理
导读:我正在编写RESTfull api,例如用户可以在线程中创建新线程或新帖子.这是我使用普通POST请求的地方.我的API还允许用户相互发送消息.当用户收到我希望在浏览器中通知的消息时,我会使用websockets而不是每隔几秒轮询一次. 我的问题是 由于我已经与websocket打开
我正在编写RESTfull api,例如用户可以在线程中创建新线程或新帖子.这是我使用普通POST请求的地方.我的API还允许用户相互发送消息.当用户收到我希望在浏览器中通知的消息时,我会使用websockets而不是每隔几秒轮询一次.

我的问题是

>由于我已经与websocket打开了连接,消息将会出现,我是否还应该使用此连接发送消息,创建新线程或帖子?
>我可以使用POST请求创建消息和websockets以实时接收它们并获取GET请求以获取消息历史记录吗?这是好习惯吗?
>我正在使用django rest框架,它为我处理字段验证,如果我使用websocket而不是普通的POST请求创建资源,我将如何处理验证.

我在开发RESTfull API方面非常新,我只开始使用websockets进行开发.对不起任何对你来说似乎合乎逻辑的愚蠢的任务:)

谢谢

解决方法

Since I already have open connection with websocket where messages
will come,should I also use this connection to send messages,create
new threads or posts?

这取决于.如果您使用的是CQRS方法,并且您的写入由不同于读取的框处理,则您希望使用常规HTTP POST;或者如果必须为可能不支持WebSockets的外部调用者提供兼容性.

Can I use POST request for creating messages and websockets to receive
them in realtime and GET request to get history of messages? Is this
good practice?

这听起来很合理.您将获得REST兼容性和WebSocket作为增强功能.我所做的是使用WebSockets来增强REST API.有些操作都在两个部分,例如“自动完成”本质上是快速连续的调用,属于读取模型可以双向完成,但缺点是我无法利用内置输出缓存而且我必须为他们实现我自己的缓存.

I’m using django rest framework,which handles validation of fields
for me,how would I handle validation if I create resource using
websocket instead of normal POST request.

我不做django,但我想你可以以某种方式自己挂钩验证并在反序列化后在你的消息对象中调用它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读