django - Django - 我的 asgi websocket 路径如何在我的大摇大摆中
问题描述
我正在创建一个 api,其中两个端点使用 ws(s) 协议。
由于我的 API 位于 Google 端点之后,因此每个端点都需要定义到 OpenApi2.0 文件中。
为了创建这个定义,我使用了 drf-yasg。
我有一个路由。py 文件如下:
""" systems/routing.py"""
from django.urls import path
from .consumers.list_sessions_consumer import MyFirstConsumer
from .consumers.session_consumer import MySecondConsumer
urlpatterns = [
path(r'v1/ws/yo/<str:uuid>/sessions-sumpup', MyFirstConsumer.as_asgi()),
path(r'v1/ws/yo/<str:uuid>/sessions', MySecondConsumer.as_asgi()),
]
我将它注册到我的 asgi.py 文件中,如下所示:
# pylint: skip-file
""" main/asgi.py """
import os
import django
from django.core.asgi import get_asgi_application
django_asgi_app = get_asgi_application()
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'main.settings')
django.setup()
from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter, URLRouter
from systems.websockets.routing import urlpatterns as system_websocket_url
application = ProtocolTypeRouter({
"http": django_asgi_app,
"websocket": AuthMiddlewareStack(
URLRouter(
system_websocket_url
)
),
})
不要介意导入顺序,这是由于此错误:使用 asgi 时尚未加载 Django 应用程序
所以我的套接字按预期工作,现在,我想要我的命令行:python3 manage.py generate_swagger swagger.yaml将这些新端点添加到我的 swagger 文件中。
我试图直接将我的 url 添加到同一个对象,然后我的所有其他 url 像这样:
urlpatterns = [
path(r'v1/toto/<str:uuid>', MyView.as_view()),
...,
path(r'v1/ws/yo/<str:uuid>/sessions-sumpup', MyFirstConsumer.as_asgi()),
path(r'v1/ws/yo/<str:uuid>/sessions', MySecondConsumer.as_asgi()),
]
但是我的招摇文件中没有任何显示。
有任何想法吗 ?
谢谢
解决方案
推荐阅读
- c++ - 使用指向成员的指针将成员函数作为参数传递
- excel - 如何在Excel中减去两个具有特定小数增量的数字
- scala - 为什么 println 被认为是不纯函数?
- apache-kafka - 数据流不使用 flink 从 Kafka 读取
- angular - Angular 6 QueryParams OnInit 不可用?
- python - 我的 Discord Python 机器人没有发送表情符号
- python - 将字符串分割为 n 个字符的 for 循环
- azure - B2C 自定义策略:在登录页面添加取消按钮
- typescript - 基于接口静态属性的类型
- docker - docker-compose,让 go api 和 nginx 通信。端口问题