ホームページ >バックエンド開発 >Python チュートリアル >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 サイトの他の関連記事を参照してください。