コンテンツ

    サーバー応答 422 Unprocessable Entity

    HTTP ステータスコード 422 の定義と適用

    HTTP ステータスコード 422 (Unprocessable Entity) は、サーバーがリクエストの内容を理解したが、意味的なエラーのために処理できないことを示すコードです。このステータスコードの重要性は、クライアントが送信したデータに問題があることを明確に伝えることにあります。

    422 - Unprocessable Entity

    ステータスコード 422 の意味

    • リクエストの理解: サーバーはリクエストを正しく解釈します。
    • 処理の失敗: サーバーはリクエストを処理できません。

    エラーが発生する状況

    1. 不正なデータフォーマット
    2. 必須フィールドの欠如
    3. フィールド内のサポートされていない値

    ステータスコード 422 の実際の使用例

    例 1: フォームバリデーションエラー

    クライアントがフォームデータを送信する際、入力内容に誤りがある場合、サーバーは次のように応答します。

    • クライアントが不正なデータをフォームに入力して送信
    • サーバーが 422 コードを返し、エラーの詳細を説明

    例 2: API データ処理

    サーバーが受信したデータを処理できない場合の典型的なシナリオです。

    • サーバーが無効な入力データを受け取る
    • エラーの詳細を含む 422 ステータスコードで応答

    例 3: ファイルのアップロード

    クライアントがサポートされていないファイルフォーマットをアップロードしようとした場合、サーバーは次のように応答します。

    • 不適切なフォーマットのファイルをアップロードしようとする
    • エラーの理由を示す 422 ステータスコードで応答

    ステータスコード 422 を引き起こすエラーの修正方法

    JavaScript での修正

    以下は、エラーを引き起こす可能性のある JavaScript のコード例です。

    
    const data = { name: "", age: "twenty" }; // 不正なデータ
    fetch('/api/endpoint', {
        method: 'POST',
        body: JSON.stringify(data),
        headers: { 'Content-Type': 'application/json' }
    });
    

    このコードを次のように修正することで、正しいデータを送信できます。

    
    const data = { name: "John Doe", age: 20 }; // 正しいデータ
    // 同様の fetch コード
    

    Python での修正

    以下は、不正なリクエストの例です。

    
    import requests
    
    data = {'name': '', 'age': 'twenty'}  # 不正なデータ
    response = requests.post('https://api.example.com/endpoint', json=data)
    

    適切なデータ検証を行うことで、エラーを防ぐことができます。

    PHP での修正

    誤ったデータを持つ API 呼び出しの例です。

    
    $data = ['name' => '', 'age' => 'twenty']; // 不正なデータ
    $response = file_get_contents('https://api.example.com/endpoint', false, stream_context_create([
        'http' => [
            'method' => 'POST',
            'header' => 'Content-Type: application/json',
            'content' => json_encode($data)
        ]
    ]));
    

    サーバー側でデータの妥当性を検証することで、エラーを回避できます。

    ステータスコード 422 の発生を防ぐための推奨事項

    • クライアント側でのデータバリデーションの実施
    • API 要件の明確な文書化
    • エラーのロギングによる診断の簡素化

    この記事では、HTTP ステータスコード 422 の詳細と、その適用例、さまざまなプログラミング言語でのエラー修正方法について説明しました。これにより、開発者はこのステータスコードをよりよく理解し、アプリケーション内での発生を防ぐ手助けとなるでしょう。

    エラー状況 説明
    不正なデータフォーマット サーバーが期待する形式と異なるデータが送信された場合
    必須フィールドの欠如 リクエストに必要なデータが欠けている場合
    サポートされていない値 無効な選択肢が指定された場合