首頁 >後端開發 >Python教學 >如何在 FastAPI 中自訂無效 JSON 請求的錯誤回應?

如何在 FastAPI 中自訂無效 JSON 請求的錯誤回應?

Susan Sarandon
Susan Sarandon原創
2024-10-21 06:28:30838瀏覽

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

自訂FastAPI 中的錯誤處理

問題:

問題:

問題:

將傳送到FastAPI 後端,會拋出錯誤並顯示無法處理的實體狀態碼(422)。回應包含詳細的錯誤詳細信息,這對於用戶友好的錯誤處理來說並不理想。有沒有辦法自訂錯誤回應?

答案:

    要處理這種情況並自訂錯誤回應,可以重寫 FastAPI 中的請求驗證異常處理程序。以下是如何實現它:
  1. 首先,請記住您傳遞的是無效的 JSON,因此伺服器會正確回應 422 Unprocessable Entity 錯誤。
<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>
    重寫異常處理程序:

在您的FastAPI 應用程式中,加入下列程式碼來覆寫RequestValidationError 的預設異常處理程序:

在上面的程式碼中,您可以透過修改「custom msg」的值來自訂錯誤訊息。
<code class="python">@app.exception_handler(RequestValidationError)
async def validation_exception_handler(request, exc):
    return PlainTextResponse(str(exc), status_code=422)</code>
傳回 PlainTextResponse:或者,您也可以傳回自訂使用 PlainTextResponse 的錯誤訊息:

以上是如何在 FastAPI 中自訂無效 JSON 請求的錯誤回應?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn