如何自訂 FastAPI 的錯誤回應

Susan Sarandon
發布: 2024-10-21 06:25:30
原創
626 人瀏覽過

How to Customize Error Responses for FastAPI

FastAPI 中錯誤回應的自訂

在 FastAPI 中,當遇到無效請求時,通常會回應 422 Unprocessable Entity 錯誤。此回應可能並不總是符合所需的使用者體驗。以下是如何自訂錯誤回應以滿足您的應用程式的特定要求。

預設錯誤回應包括「額外資料」和「實際」資料等詳細資訊。為了自訂此回應,FastAPI 提供了重寫請求驗證異常處理程序的功能。如下面的程式碼範例所示,您可以定義自訂處理程序:

<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
from pydantic import BaseModel

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"
        }),
    )</code>
登入後複製

或者,您可以傳回帶有自訂錯誤訊息的PlainTextResponse:

<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>
登入後複製

這些自訂定義選項允許即使遇到無效請求,您也可以優雅地處理錯誤回應並提供使用者友好的體驗。

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

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!