422エラー(Unprocessable Entity)とは
422エラーはHTTPステータスコードの一種で、サーバーがリクエストの構文は理解できたものの、その内容に含まれる指示を処理できない場合に返されるエラーです。このエラーコードはRFC 4918で定義されており、WebDAVプロトコルの拡張として標準化されました。
400番台のエラーコードはクライアント側の問題を示しますが、422エラーはリクエストの形式は正しいが内容に問題がある状況を表します。
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やプログラミングに関するコラム
PythonをWebで実行する方法
共通テスト「情報Ⅰ」2年目で変わる、日本の教育と学び方
gitでブランチ(branch)を切り替える方法
git cloneでブランチを指定する方法
64GBのメモリが必要な人・不要な人の特徴
PCを再起動するコマンド一覧
CapsLock以外で大文字になる原因【Windows編】
パソコンで大文字になるのを解除する方法
面白いAIの活用事例を業界別に紹介
Gitでcommit(コミット)を取り消す方法
ITやプログラミングに関するニュース
サイボウズがkintone AIを正式提供、β版から約1年を経てクレジット制を導入
ロゼッタのラクヤクAIがCSRドラフト作成期間を90%以上短縮、従来4週間を約2日に
AI CROSSが不動産業界向け生成AI伴走支援を開始、アスコットの業務AI実装を実践サポート
日本情報クリエイトが「オーナー提案AIロボⅡ」売買査定を刷新、月1万円からW査定が回数無制限に
Wur株式会社がAI新規事業診断サービス「MVP事業診断レポート」をリリース、12の質問で事業構想を約10分で分析
バトンズがM&A専門家向け「AI概要書」β版を提供開始、企業概要書のドラフトを最速3分で自動生成
SCSKが観光DXサービス「Connexia」を開発、首里城公園でNFT活用の周遊促進が始動
Verdent AI発表、エンジニア不要でソフトウェアを構築する「AIエンジニアリングチーム」が登場
ゼネラルBREXAテクノロジーが外食・小売向けAIサービス「aimana」を開発、店長の意思決定をデータで支援
田中組がKencopa工程AIエージェント製品版を先行利用開始、建設現場の工程管理属人化を解消へ
