FastAPI で無効な JSON リクエストに対するエラー応答をカスタマイズするにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-21 06:28:30
オリジナル
733 人が閲覧しました

How to Customize Error Responses for Invalid JSON Requests in FastAPI?

FastAPI でのエラー処理のカスタマイズ

質問:

無効な JSON リクエストを送信する場合FastAPI バックエンドの場合、処理できないエンティティ ステータス コード (422) でエラーがスローされます。応答には詳細なエラーの詳細が含まれており、ユーザーフレンドリーなエラー処理には理想的ではありません。エラー応答をカスタマイズする方法はありますか?

回答:

この状況に対処し、エラー応答をカスタマイズするには、FastAPI でリクエスト検証例外ハンドラーをオーバーライドできます。 。実装方法は次のとおりです。

まず、無効な JSON を渡しているため、サーバーは 422 Unprocessable Entity エラーで正しく応答することに注意してください。

例外ハンドラーのオーバーライド:

  1. FastAPI アプリケーションに次のコードを追加して、RequestValidationError のデフォルトの例外ハンドラーをオーバーライドします。
<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>
ログイン後にコピー
  1. 上記のコード"custom msg" の値を変更することで、エラー メッセージをカスタマイズできます。

PlainTextResponse を返す:

あるいは、カスタム メッセージを返すこともできます。 PlainTextResponse を使用したエラー メッセージ:

<code class="python">@app.exception_handler(RequestValidationError)
async def validation_exception_handler(request, exc):
    return PlainTextResponse(str(exc), status_code=422)</code>
ログイン後にコピー

以上がFastAPI で無効な JSON リクエストに対するエラー応答をカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!