Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich Fehlerantworten in FastAPI anpassen?

Wie kann ich Fehlerantworten in FastAPI anpassen?

DDD
Freigeben: 2024-10-21 06:32:29
Original
965 Leute haben es durchsucht

How to Customise Error Responses in FastAPI?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage