配置 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。