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.