Configurar Swagger UI¶
Você pode configurar alguns parâmetros extras da UI do Swagger.
Para configurá-los, passe o argumento swagger_ui_parameters
ao criar o objeto de aplicativo FastAPI()
ou para a função get_swagger_ui_html()
.
swagger_ui_parameters
recebe um dicionário com as configurações passadas diretamente para o Swagger UI.
O FastAPI converte as configurações para JSON para torná-las compatíveis com JavaScript, pois é disso que o Swagger UI precisa.
Desabilitar realce de sintaxe¶
Por exemplo, você pode desabilitar o destaque de sintaxe na UI do Swagger.
Sem alterar as configurações, o destaque de sintaxe é habilitado por padrão:
Mas você pode desabilitá-lo definindo syntaxHighlight
como 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}"}
...e então o Swagger UI não mostrará mais o destaque de sintaxe:
Alterar o tema¶
Da mesma forma que você pode definir o tema de destaque de sintaxe com a chave "syntaxHighlight.theme"
(observe que há um ponto no meio):
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}"}
Essa configuração alteraria o tema de cores de destaque de sintaxe:
Alterar parâmetros de UI padrão do Swagger¶
O FastAPI inclui alguns parâmetros de configuração padrão apropriados para a maioria dos casos de uso.
Inclui estas configurações padrão:
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,
}
Você pode substituir qualquer um deles definindo um valor diferente no argumento swagger_ui_parameters
.
Por exemplo, para desabilitar deepLinking
você pode passar essas configurações para 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}"}
Outros parâmetros da UI do Swagger¶
Para ver todas as outras configurações possíveis que você pode usar, leia a documentação oficial dos parâmetros da UI do Swagger.
Configurações somente JavaScript¶
A interface do usuário do Swagger também permite que outras configurações sejam objetos somente JavaScript (por exemplo, funções JavaScript).
O FastAPI também inclui estas configurações de predefinições
somente para JavaScript:
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIBundle.SwaggerUIStandalonePreset
]
Esses são objetos JavaScript, não strings, então você não pode passá-los diretamente do código Python.
Se você precisar usar configurações somente JavaScript como essas, você pode usar um dos métodos acima. Sobrescreva todas as operações de rotas do Swagger UI e escreva manualmente qualquer JavaScript que você precisar.