ホームページ >バックエンド開発 >Python チュートリアル >FastAPI の検証エラーに対するエラー応答をカスタマイズするにはどうすればよいですか?
FastAPI でのエラー応答のカスタマイズ
無効なデータまたは予期しないデータを含むリクエストを受信した場合、多くの場合、デフォルトの FastAPI 応答。このガイドでは、FastAPI でエラー レスポンスを処理およびカスタマイズする方法について説明します。
特に、説明されている問題はリクエスト本文での追加データの受信に関連しており、その結果、デフォルトのエラー詳細で 422 Unprocessable Entity エラーが発生します。目標は、このエラーを適切に処理し、次のようなカスタマイズされた応答を返すことです。
<code class="json">{ "error": { "message": "Invalid JSON body" }, "status": 0 }</code>
エラー応答をカスタマイズするために、FastAPI では検証エラーの例外ハンドラーをオーバーライドできます。次の手順は、これを実現する方法の概要です:
必要なライブラリをインポートします:
from fastapi import FastAPI, Body, Request, status from fastapi.exceptions import RequestValidationError from fastapi.responses import JSONResponse
定義カスタム例外ハンドラー:
@app.exception_handler(RequestValidationError) async def validation_exception_handler(request: Request, exc: RequestValidationError): return JSONResponse( status_code=status.HTTP_422_UNPROCESSABLE_ENTITY, content={ "detail": exc.errors(), # optionally include the errors "body": exc.body, "custom msg": "Your error message" } )
カスタム ハンドラーを FastAPI アプリに登録します:
app = FastAPI()
代替ハンドラー:
または、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 アプリケーションによって。
以上がFastAPI の検証エラーに対するエラー応答をカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。