Zum Inhalt

Swagger-Oberfläche konfigurieren

Sie können einige zusätzliche Parameter der Swagger-Oberfläche konfigurieren.

Um diese zu konfigurieren, übergeben Sie das Argument swagger_ui_parameters beim Erstellen des FastAPI()-App-Objekts oder an die Funktion get_swagger_ui_html().

swagger_ui_parameters empfängt ein Dict mit den Konfigurationen, die direkt an die Swagger-Oberfläche übergeben werden.

FastAPI konvertiert die Konfigurationen nach JSON, um diese mit JavaScript kompatibel zu machen, da die Swagger-Oberfläche das benötigt.

Syntaxhervorhebung deaktivieren

Sie könnten beispielsweise die Syntaxhervorhebung in der Swagger-Oberfläche deaktivieren.

Ohne Änderung der Einstellungen ist die Syntaxhervorhebung standardmäßig aktiviert:

Sie können sie jedoch deaktivieren, indem Sie syntaxHighlight auf False setzen:

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}"}

... und dann zeigt die Swagger-Oberfläche die Syntaxhervorhebung nicht mehr an:

Das Theme ändern

Auf die gleiche Weise könnten Sie das Theme der Syntaxhervorhebung mit dem Schlüssel syntaxHighlight.theme festlegen (beachten Sie, dass er einen Punkt in der Mitte hat):

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}"}

Obige Konfiguration würde das Theme für die Farbe der Syntaxhervorhebung ändern:

Defaultparameter der Swagger-Oberfläche ändern

FastAPI enthält einige Defaultkonfigurationsparameter, die für die meisten Anwendungsfälle geeignet sind.

Es umfasst die folgenden Defaultkonfigurationen:

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,
}

Sie können jede davon überschreiben, indem Sie im Argument swagger_ui_parameters einen anderen Wert festlegen.

Um beispielsweise deepLinking zu deaktivieren, könnten Sie folgende Einstellungen an swagger_ui_parameters übergeben:

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}"}

Andere Parameter der Swagger-Oberfläche

Um alle anderen möglichen Konfigurationen zu sehen, die Sie verwenden können, lesen Sie die offizielle Dokumentation für die Parameter der Swagger-Oberfläche.

JavaScript-basierte Einstellungen

Die Swagger-Oberfläche erlaubt, dass andere Konfigurationen auch JavaScript-Objekte sein können (z. B. JavaScript-Funktionen).

FastAPI umfasst auch diese Nur-JavaScript-presets-Einstellungen:

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

Dabei handelt es sich um JavaScript-Objekte, nicht um Strings, daher können Sie diese nicht direkt vom Python-Code aus übergeben.

Wenn Sie solche JavaScript-Konfigurationen verwenden müssen, können Sie einen der früher genannten Wege verwenden. Überschreiben Sie alle Pfadoperationen der Swagger-Oberfläche und schreiben Sie manuell jedes benötigte JavaScript.