INDEX
422 Unprocessable Entityについて
422 Unprocessable Entityの概要
処理できないエンティティを示すHTTPステータスコード | ||
422 Unprocessable Entity 概要 422 Unprocessable Entityは、リクエストが正しい形式であるものの、その内容が意味的に誤っていたり、処理要件を満たしていない場合に返されるHTTPステータスコードです。WebDAV(HTTP拡張仕様)で導入されたコードですが、近年ではREST APIでも一般的に使用されています。 |
||
影響 クライアントはリクエストの内容を修正しない限り、要求を再送しても成功しないため、ユーザー操作やクライアントアプリケーションのエラーとなる可能性があります。 |
422 Unprocessable Entityはどのような時に発生するか
- リクエストボディに不正な値が含まれている場合(例: 必須フィールドの欠如、値の型が不適切)
- データのバリデーションがサーバーで失敗した場合
- リソースの状態や仕様に矛盾するデータを送信した場合
- リクエスト自体は正しいが、サーバーのビジネスロジックで処理が不可能な場合
SEOに関する影響
422エラーが発生すると、特定のリソースの処理に失敗するため、ユーザーエクスペリエンスが低下します。特にフォーム送信やAPIリクエストが関与する機能でエラーが頻発する場合、サービス全体の信頼性が低下し、間接的にSEOに悪影響を与える可能性があります。
422 Unprocessable Entityの事例
以下のようなケースで422エラーが発生します。
不適切なデータ形式の送信
POST /api/user HTTP/1.1 Host: example.com Content-Type: application/json { "username": "john_doe", "age": "twenty-five" }
age
フィールドが数値として期待されているのに文字列が送信された場合、422エラーが発生します。
必須フィールドの欠如
POST /api/register HTTP/1.1 Host: example.com Content-Type: application/json { "email": "user@example.com" }
サーバーがpassword
フィールドを必須とする場合、このリクエストは422エラーを返します。
サーバーでの処理と解決
サーバー側では、以下の方法で422エラーを解決できる可能性があります。
- リクエストデータのバリデーションを強化
解決策:サーバーで受け入れるデータの形式や値を厳密に検証し、不正なリクエストを拒否する理由を明確にレスポンスに含めます。 - エラー詳細をレスポンスに含める
解決策:エラーレスポンスに具体的なエラー内容(例: 欠落したフィールド、型の不一致)を含め、クライアントが問題を特定しやすくします。
クライアントの対応と解決
クライアント側では、以下の対応で解決できる可能性があります。
- API仕様に従ったリクエストの送信
解決策:APIドキュメントを参照し、サーバーが期待する形式や値でデータを送信します。 - 送信データの検証
解決策:リクエストを送信する前に、必須フィールドがすべて含まれているか、値の型が正しいかをクライアント側で確認します。
関連するHTTPステータスコードとの比較
422 Unprocessable Entityと混同されやすいステータスコードについて解説します。
- 400 Bad Request: リクエスト自体が無効な場合に返されるエラー
- 409 Conflict: リクエストがリソースの現在の状態と矛盾する場合に返されるエラー
これらの違いを理解することで、適切なステータスコードを使用できるようになります。