在DRFSpectical设置中传递SwaggerUI url

2024-04-20 04:53:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个用Django 2.x.写的项目,我想用drf自动添加文档。我现在正在使用drf-spectacular=0.15.1

我正在Docker中运行我的项目,api容器的构建上下文被设置为api项目的根文件夹

当我运行命令生成模式./manage.py spectacular --file schema.yml时,脚本在api项目的根目录中创建了一个schema.yml文件,但我的Django settings.py位于下面一个级别的名为my_website的文件夹中。项目结构如下:

main-project
\api
 \_my_website
  __init__.py
  apps.py
  settings.py
  urls.py

 schema.yml

\client
docker-compose.yml

因此,在settings.py中,我添加了特定的设置,告诉Swagger UI从何处获取模式,如drf-spectacular文档中所指定:

SPECTACULAR_SETTINGS = {
    'SWAGGER_UI_SETTINGS': {
        'url': 'schema.yml'
    },
}

一旦我尝试访问我的项目中的swagger ui url以检查是否在那里加载了架构,我就会得到错误:**Fetch error** Not Found schema.yml。我尝试以各种方式传递模式url,例如通过相对url../schema.yml,但这也不起作用。也许有人能告诉我我做错了什么

谢谢


Tags: 项目django文档py文件夹apiurlsettings
1条回答
网友
1楼 · 发布于 2024-04-20 04:53:42

swagger-configuration doc

url: The URL pointing to API definition (normally swagger.json or swagger.yaml)

因此,url值必须是“相对URL”或“绝对URL”

比如说

SPECTACULAR_SETTINGS = {
    'SWAGGER_UI_SETTINGS': {
        'url': 'https://example.com/path/to/schema/',  # absolute path
        'url': '/path/to/schema/',  # relative path
    },
}

相关问题 更多 >