FastAPI では、エンドポイントに特定のヘッダーが必要になる場合があります。このヘッダーがクライアント要求に存在しない場合、サーバーはエラー コード 422 Unprocessable Entity を返します。ただし、シナリオによっては、このエラー応答を 401 Unauthorized にカスタマイズすることが望ましい場合があります。
オプション 1: カスタム エラー処理を使用したオプションのヘッダー
ヘッダーがオプションであることを示すには、Header(None) を使用します。関数本体内で、None をチェックし、ヘッダーが存在しない場合は 401 Unauthorized エラーを発生させます。
オプション 2: 例外ハンドラーをオーバーライドする
RequestValidationError 例外ハンドラーをオーバーライドします。 。エラーがカスタム ヘッダーに関連しているかどうかを確認し、それに応じてカスタム エラー応答 (例: 401 Unauthorized) を返します。
オプション 3: カスタム例外処理を備えたサブアプリケーション
サブアプリケーションを作成し、メインアプリケーションにマウントします。サブアプリケーションの RequestValidationError の例外ハンドラーをオーバーライドして、そのサブアプリケーションのみのルートのエラーを処理します。
オプション 4: カスタム APIRoute クラスを使用した APIRouter
使用例外処理を処理するカスタム APIRoute クラス。このクラス内で、RequestValidationError をキャッチし、カスタム エラー応答を返すカスタム ルート ハンドラーを定義します。
以上がFastAPI の 422 エラー応答をヘッダー欠落に対する 401 にカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。