Anpassen von Fehlerantworten in FastAPI
Beim Empfang von Anfragen mit ungültigen oder unerwarteten Daten ist es oft wünschenswert, statt der Standard-FastAPI-Antwort. In dieser Anleitung wird beschrieben, wie Fehlerantworten in FastAPI behandelt und angepasst werden.
Das beschriebene Problem betrifft insbesondere den Empfang zusätzlicher Daten in einem Anforderungstext, was zu einem 422 Unprocessable Entity-Fehler mit Standardfehlerdetails führt. Das Ziel besteht darin, diesen Fehler ordnungsgemäß zu behandeln und eine angepasste Antwort zurückzugeben, wie zum Beispiel:
<code class="json">{ "error": { "message": "Invalid JSON body" }, "status": 0 }</code>
Um Fehlerantworten anzupassen, ermöglicht FastAPI das Überschreiben des Ausnahmehandlers für Validierungsfehler. Die folgenden Schritte beschreiben, wie Sie dies erreichen:
Notwendige Bibliotheken importieren:
from fastapi import FastAPI, Body, Request, status from fastapi.exceptions import RequestValidationError from fastapi.responses import JSONResponse
Definieren ein benutzerdefinierter Ausnahmehandler:
@app.exception_handler(RequestValidationError) async def validation_exception_handler(request: Request, exc: RequestValidationError): return JSONResponse( status_code=status.HTTP_422_UNPROCESSABLE_ENTITY, content={ "detail": exc.errors(), # optionally include the errors "body": exc.body, "custom msg": "Your error message" } )
Registrieren Sie den benutzerdefinierten Handler bei der FastAPI-App:
app = FastAPI()
Alternative Handler:
Alternativ kann eine PlainTextResponse verwendet werden, um eine einfache Nachricht zurückzugeben:
<code class="python">from fastapi.responses import PlainTextResponse @app.exception_handler(RequestValidationError) async def validation_exception_handler(request, exc): return PlainTextResponse(str(exc), status_code=422)</code>
Durch Befolgen dieser Schritte können Sie Validierungsfehler ordnungsgemäß behandeln und die zurückgegebenen Fehlerantworten anpassen durch Ihre FastAPI-Anwendung.
Das obige ist der detaillierte Inhalt vonWie kann ich Fehlerantworten für Validierungsfehler in FastAPI anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!