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.