ホームページ >バックエンド開発 >Python チュートリアル >FastAPI のエラー応答をカスタマイズする方法

FastAPI のエラー応答をカスタマイズする方法

Susan Sarandon
Susan Sarandonオリジナル
2024-10-21 06:25:30732ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。