跳至內容

設定 Swagger UI

您可以設定一些額外的 Swagger UI 參數

要設定它們,請在建立 FastAPI() 應用程式物件時或傳遞給 get_swagger_ui_html() 函式時,傳遞 swagger_ui_parameters 參數。

swagger_ui_parameters 接收一個包含直接傳遞給 Swagger UI 的設定的字典。

FastAPI 將設定轉換為 JSON 以使其與 JavaScript 相容,因為這是 Swagger UI 所需的。

停用語法高亮顯示

例如,您可以在 Swagger UI 中停用語法高亮顯示。

如果未更改設定,預設會啟用語法高亮顯示

但您可以透過將 syntaxHighlight 設定為 False 來停用它

from fastapi import FastAPI

app = FastAPI(swagger_ui_parameters={"syntaxHighlight": False})


@app.get("/users/{username}")
async def read_user(username: str):
    return {"message": f"Hello {username}"}

...然後 Swagger UI 將不再顯示語法高亮顯示

更改主題

同樣地,您可以使用鍵 "syntaxHighlight.theme" 設定語法高亮顯示主題(請注意,中間有一個點)

from fastapi import FastAPI

app = FastAPI(swagger_ui_parameters={"syntaxHighlight.theme": "obsidian"})


@app.get("/users/{username}")
async def read_user(username: str):
    return {"message": f"Hello {username}"}

該設定將更改語法高亮顯示的顏色主題

更改預設 Swagger UI 參數

FastAPI 包含一些適用於大多數使用案例的預設設定參數。

它包含這些預設設定

swagger_ui_default_parameters: Annotated[
    Dict[str, Any],
    Doc(
        """
        Default configurations for Swagger UI.

        You can use it as a template to add any other configurations needed.
        """
    ),
] = {
    "dom_id": "#swagger-ui",
    "layout": "BaseLayout",
    "deepLinking": True,
    "showExtensions": True,
    "showCommonExtensions": True,
}

您可以透過在參數 swagger_ui_parameters 中設定不同的值來覆寫它們中的任何一個。

例如,要停用 deepLinking,您可以將這些設定傳遞給 swagger_ui_parameters

from fastapi import FastAPI

app = FastAPI(swagger_ui_parameters={"deepLinking": False})


@app.get("/users/{username}")
async def read_user(username: str):
    return {"message": f"Hello {username}"}

其他 Swagger UI 參數

要查看您可以使用的所有其他可能的設定,請閱讀 Swagger UI 參數的官方文件

僅限 JavaScript 的設定

Swagger UI 也允許其他設定為僅限 JavaScript 的物件(例如,JavaScript 函式)。

FastAPI 也包含這些僅限 JavaScript 的 presets 設定

presets: [
    SwaggerUIBundle.presets.apis,
    SwaggerUIBundle.SwaggerUIStandalonePreset
]

這些是JavaScript 物件,而不是字串,因此您不能直接從 Python 程式碼傳遞它們。

如果您需要使用像這樣的僅限 JavaScript 的設定,您可以使用上述方法之一。覆寫所有 Swagger UI 的路徑操作,並手動編寫您需要的任何 JavaScript。