Skip to content

API文档

fastapi提供了两个api文档,启动后访问/docs/redoc就会看到所有接口了,一般访问/docs比较多,因为他是交互式的,可以直接在页面上请求接口并看到返回的数据。参考

文档需要用到Swagger UI来加载样式,官方设置了一个国外的CDN,国内访问经常超时,下面这段代码可以换一个CDN让访问更快速

py
from fastapi import FastAPI
from fastapi.openapi.docs import get_swagger_ui_html

app = FastAPI(docs_url=None)

@app.get("/docs", include_in_schema=False)
async def custom_swagger_ui_html():
    # 从环境变量中读取root_path拼接出openapi的url,避免设置root_path之后访问不到/docs
    root_path = environ.get('ROOT_PATH', '')
    openapi_url: str = root_path + app.openapi_url
    return get_swagger_ui_html(
        openapi_url=openapi_url,
        title=app.title + " - Swagger UI",
        oauth2_redirect_url=app.swagger_ui_oauth2_redirect_url,
        swagger_js_url="https://unpkg.com/swagger-ui-dist@5/swagger-ui-bundle.js",
        swagger_css_url="https://unpkg.com/swagger-ui-dist@5/swagger-ui.css",
    )