422エラー(Unprocessable Entity)とは
422エラーはHTTPステータスコードの一種で、サーバーがリクエストの構文は理解できたものの、その内容に含まれる指示を処理できない場合に返されるエラーです。このエラーコードはRFC 4918で定義されており、WebDAVプロトコルの拡張として標準化されました。
400番台のエラーコードはクライアント側の問題を示しますが、422エラーはリクエストの形式は正しいが内容に問題がある状況を表します。
【PR】プログラミングや生成AIを無料で学べる「コードキャンプフリー」
422エラーが発生する具体的な原因と状況
422エラーは、バリデーションエラーが発生した際によく使用されます。例えば、メールアドレスの形式が不正な場合、必須項目が未入力の場合、などに返されます。APIへのリクエストでJSON形式のデータを送信する際、構文は正しくてもビジネスロジック上の制約に違反している場合にも、このエラーは発生します。
| 発生原因 | 具体例 |
|---|---|
| バリデーション違反 | メールアドレス形式不正 |
| 必須項目の欠落 | ユーザー名が空欄 |
| データ型の不一致 | 数値フィールドに文字列 |
| 値の範囲外 | 年齢に負の数値を指定 |
「データベースの制約違反」や「ビジネスルールに反する値が送信された場合」も422エラーの対象となります。例えば、「在庫数を超える注文数」や「過去の日付を予約日として指定した場合」などが該当します。400エラーとの違いは、400が構文エラーを示すのに対し、422はセマンティック(意味的)なエラーを示す点にあります。
422エラーのレスポンス実装とハンドリング方法
サーバー側で422エラーを返す際はHTTPステータスコード422と共に、エラーの詳細情報をJSON形式で返すことが推奨され、どのフィールドでどのようなエラーが発生したかを明示します。以下はREST APIでの実装例で、バリデーションエラーの詳細を含むレスポンスを生成するコードです。
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
{
"error": "Validation Failed",
"details": [
{
"field": "email",
"message": "メールアドレスの形式が正しくありません"
},
{
"field": "age",
"message": "年齢は0以上の数値を入力してください"
}
]
}
クライアント側で422エラーを受け取った際、エラーメッセージをユーザーに表示し、該当フィールドをハイライト表示するなどの処理を実装します。JavaScriptでのエラーハンドリング例として、fetchAPIを使用した場合の処理は以下のようになり、レスポンスのステータスコードを確認して適切なエラー処理を行うのです。
fetch('/api/users', {
method: 'POST',
body: JSON.stringify(userData)
})
.then(response => {
if (response.status === 422) {
return response.json().then(error => {
error.details.forEach(detail => {
console.log(`${detail.field}: ${detail.message}`);
});
});
}
})
.catch(error => console.error('Error:', error));
※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。
ITやプログラミングに関するコラム
イラレ(Illustrator)の遠近グリッドの使い方を簡単に解説
HTMLで"が文字化けする原因と解決方法を解説
Vimのコマンドの使い方や基本的な操作方法を解説
PHPのceil関数やfloor関数で小数点を切り上げ・切り捨てする方法
Pythonのコードはどこに書く?初心者におすすめの場所と実行する手順を解説
Photoshop(フォトショップ)のクリッピングパスとは?切り抜き方法などを詳しく解説
PHPのmb_convert_kanaで全角・半角の変換をする方法
カラーチャートの組み合わせ配色やおすすめツールを解説
【AWS】認定資格12種類の一覧や難易度、費用などを解説
Canvaとは?使い方やアカウント登録などを初心者向けに解説
ITやプログラミングに関するニュース
MIL株式会社が採用説明会自動化ウェビナーを開催、人事工数の削減と採用機会の損失防止へ
アララと東京海上日動パートナーズTOKIOが共催ウェビナー開催、企業の懲戒処分に関する疑問を解説
キュレーションズ株式会社が無料ウェビナー開催、新規事業を成功に導く戦略コンセプトの描き方を解説
グンゼ株式会社が個人投資家向けWEBセミナーを開催、佐口社長が事業戦略を解説
スマートシェアら3社が共催ウェビナー開催、Xのファンマーケと広域拡散の成功法則を解説
セレクションアンドバリエーションが職務記述書作成ウェビナーを開催、エンゲージメントの高い職場づくりを解説
株式会社100など3社が共催ウェビナーを開催、AIを活用した顧客理解の新アプローチを解説
株式会社EmplifAIがヒューマノイドロボットのセミナーを開催、Unitree G1のデモで最新動向を解説
株式会社immedioがセミナー開催、インバウンドリードの商談化率を最大化するマーケ・IS連携を解説
株式会社uyetがVTuberサービス事業開発解説ウェビナーを開催、タレントの声を反映した開発方法を伝授


