FastAPI - 无法在生产中渲染 Swagger

msl*_*sln 11 swagger openapi fastapi

这是我的 FastAPImain.py文件。

from fastapi import FastAPI
from project.config.settings import base as settings

app = FastAPI(docs_url=f"{settings.URL_ROOT}/{settings.DOCS_URL}", redoc_url=None)
app.openapi_version = "3.0.0"

# some functions here
Run Code Online (Sandbox Code Playgroud)

我将这个项目部署到服务器上。但是当我转到服务器中的文档地址时,1.2.3.4/url_root/docs_url它向我显示以下消息:

Unable to render this definition
The provided definition does not specify a valid version field.

Please indicate a valid Swagger or OpenAPI version field.
Supported version fields are swagger: "2.0" and those that match openapi: 3.0.n (for example, openapi: 3.0.0).
Run Code Online (Sandbox Code Playgroud)

有什么问题以及如何解决?

更新:
FastAPI 落后于 Nginx。我的所有端点都工作正常,但我看不到文档。

小智 3

您应该检查此页面的代理设置。

但据我了解,您可以通过将 root_path 添加到 openapi_url 来解决此问题:

app = FastAPI(
    docs_url=f"/url_root/docs_url",
    openapi_url="/url_root/openapi.json",
    redoc_url=None)
Run Code Online (Sandbox Code Playgroud)