Ir para o conteúdo

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.