如何解决Python本地fastapi cdn swagger ui打不开的问题

介绍

在使用Python的FastAPI框架开发Web应用程序时,我们通常会使用Swagger UI来生成并展示API文档。但有时候我们可能会遇到本地FastAPI CDN Swagger UI无法打开的问题,本文将指导你如何解决这个问题。

解决步骤

下面是解决问题的步骤概览:

步骤 操作
1 安装swagger-ui-dist
2 修改FastAPI应用程序
3 启动FastAPI应用程序

下面将详细介绍每一步需要做什么以及相应的代码片段。

步骤1:安装swagger-ui-dist

首先,我们需要安装swagger-ui-dist包,该包包含了Swagger UI的所有静态文件。可以使用pip安装:

pip install swagger-ui-dist

步骤2:修改FastAPI应用程序

接下来,在FastAPI应用程序的主文件中,我们需要对Swagger UI的路径进行配置。打开你的Python文件,找到以下代码:

from fastapi import FastAPI
from fastapi.openapi.docs import get_swagger_ui_html
from fastapi.openapi.utils import get_openapi

app = FastAPI()

@app.get("/")
async def root():
    return {"message": "Hello World"}

@app.get("/docs")
async def swagger_ui_html():
    return get_swagger_ui_html(openapi_url="/openapi.json", title="API 文档")

@app.get("/openapi.json")
async def get_open_api_endpoint():
    return get_openapi(title="API", version="0.1.0", routes=app.routes)

然后,你需要对上述代码进行一些修改。首先,导入swagger_ui_dist

from fastapi import FastAPI
from fastapi.openapi.docs import get_swagger_ui_html
from fastapi.openapi.utils import get_openapi
from fastapi.staticfiles import StaticFiles

app = FastAPI()

# 添加静态文件路径
app.mount("/static", StaticFiles(directory="static"), name="static")

@app.get("/")
async def root():
    return {"message": "Hello World"}

@app.get("/docs")
async def swagger_ui_html():
    return get_swagger_ui_html(openapi_url="/openapi.json", title="API 文档")

@app.get("/openapi.json")
async def get_open_api_endpoint():
    return get_openapi(title="API", version="0.1.0", routes=app.routes)

这里,我们通过app.mount函数将Swagger UI的静态文件路径添加到FastAPI应用程序中。

步骤3:启动FastAPI应用程序

最后,我们只需要启动FastAPI应用程序即可。在终端中执行以下命令:

uvicorn main:app --reload

这将启动FastAPI应用程序,并运行在默认的本地地址http://localhost:8000

结论

通过按照以上步骤,我们可以成功解决Python本地FastAPI CDN Swagger UI打不开的问题。现在,你可以通过访问http://localhost:8000/docs来查看并使用Swagger UI生成的API文档了。

希望本文对你有所帮助!