Anpassen von Fehlerantworten in FastAPI
Beim Empfang ungültiger JSON-Anfragen gibt FastAPI normalerweise den Fehler 422 Unprocessable Entity mit detaillierten Informationen zum Problem zurück. Es ist jedoch möglich, diese Fehlerantwort mit Ihrer eigenen Nachricht und Struktur anzupassen.
Eine Möglichkeit, damit umzugehen, besteht darin, den standardmäßigen Ausnahmehandler für die Anforderungsvalidierung zu überschreiben. Dies kann durch die Implementierung eines benutzerdefinierten Ausnahmehandler-Dekorators erreicht werden. Hier ist ein Beispiel, das die Fehlerantwort so ändert, dass sie eine benutzerdefinierte Nachricht enthält:
<code class="python">from fastapi import FastAPI, Body, Request, status from fastapi.encoders import jsonable_encoder from fastapi.exceptions import RequestValidationError from fastapi.responses import JSONResponse app = FastAPI() @app.exception_handler(RequestValidationError) async def validation_exception_handler(request: Request, exc: RequestValidationError): return JSONResponse( status_code=status.HTTP_422_UNPROCESSABLE_ENTITY, content=jsonable_encoder({ "detail": exc.errors(), # optionally include the errors "body": exc.body, "custom msg": {"Your error message"} }), ) class Demo(BaseModel): content: str = None @app.post("/demo") async def demo_func(d: Demo): return d.content</code>
Dieser Ausnahmehandler gibt eine JSON-Antwort mit einer benutzerdefinierten Nachricht zusammen mit den ursprünglichen Validierungsfehlern und dem Hauptteil der Anforderung zurück.
Alternativ können Sie die Fehlerantwort als Klartextnachricht anpassen:
<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>
Dieser Handler gibt eine einfache Klartextzeichenfolge aus, die die Fehlermeldung darstellt. Mit beiden Methoden können Sie die Fehlerreaktion anpassen, um Ihren API-Benutzern eine benutzerfreundlichere oder kontextspezifischere Nachricht bereitzustellen.
Das obige ist der detaillierte Inhalt vonWie kann ich Fehlerantworten in FastAPI anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!