設定 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。