Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich Fehlerantworten für ungültige JSON-Anfragen in FastAPI anpassen?

Wie kann ich Fehlerantworten für ungültige JSON-Anfragen in FastAPI anpassen?

Susan Sarandon
Susan SarandonOriginal
2024-10-21 06:28:30736Durchsuche

How to Customize Error Responses for Invalid JSON Requests in FastAPI?

Anpassen der Fehlerbehandlung in FastAPI

Frage:

Beim Senden einer ungültigen JSON-Anfrage an Bei einem FastAPI-Backend wird ein Fehler mit einem nicht verarbeitbaren Entitätsstatuscode (422) ausgegeben. Die Antwort enthält ausführliche Fehlerdetails, die für eine benutzerfreundliche Fehlerbehandlung nicht ideal sind. Gibt es eine Möglichkeit, die Fehlerantwort anzupassen?

Antwort:

Um mit dieser Situation umzugehen und die Fehlerantwort anzupassen, können Sie den Ausnahmehandler für die Anforderungsvalidierung in FastAPI überschreiben . So implementieren Sie es:

Denken Sie zunächst daran, dass Sie ein ungültiges JSON übergeben und der Server daher korrekt mit dem Fehler „422 Unprocessable Entity“ antwortet.

Überschreiben des Ausnahmehandlers :

  1. Fügen Sie in Ihrer FastAPI-Anwendung den folgenden Code hinzu, um den Standard-Ausnahmehandler für RequestValidationError zu überschreiben:
<code class="python">@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"}
        }),
    )</code>
  1. Im obigen Code , können Sie die Fehlermeldung anpassen, indem Sie den Wert von „custom msg“ ändern.

Eine PlainTextResponse zurückgeben:

Alternativ können Sie auch eine benutzerdefinierte Nachricht zurückgeben Fehlermeldung mit einer PlainTextResponse:

<code class="python">@app.exception_handler(RequestValidationError)
async def validation_exception_handler(request, exc):
    return PlainTextResponse(str(exc), status_code=422)</code>

Das obige ist der detaillierte Inhalt vonWie kann ich Fehlerantworten für ungültige JSON-Anfragen in FastAPI anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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