自訂FastAPI 中的錯誤處理
問題:
問題:問題:
將傳送到FastAPI 後端,會拋出錯誤並顯示無法處理的實體狀態碼(422)。回應包含詳細的錯誤詳細信息,這對於用戶友好的錯誤處理來說並不理想。有沒有辦法自訂錯誤回應?
答案:
<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中文網其他相關文章!