0

我正在创建一个 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()),
]

但是我的招摇文件中没有任何显示。

有任何想法吗 ?

谢谢

4

0 回答 0