422 Unprocessable Content

HTTP の 422 Unprocessable Contentクライアントエラーレスポンスステータスコードで、サーバーがリクエストコンテンツのコンテンツ型を理解し、リクエストコンテンツの構文が正しいことを示していますが、コンテンツに格納された指示を処理することができなかったことを表します。

422 のレスポンスを受け取ったクライアントは、リクエストを変更せずに繰り返しても、同じエラーで失敗することを想定しておくべきです。

状態

http
422 Unprocessable Content

SHA 検証の失敗

次の例では、ファイルコンテンツの更新リクエストを行います(GitHub の API に基づく)。 content フィールドは Base64 エンコード方式で、 \n 改行文字を 60 文字ごとに使用し、文字列の末尾に 1 つ追加します。

http
PUT /repos/mdn/content/contents/README.md HTTP/1.1
Host: api.example.com
Accept: application/vnd.github+json
Authorization: Bearer abcd123
Content-Type: application/json
Content-Length: 165

{
  "message": "My commit",
  "content": "WW9zaGkgd2FzIHRoZXJlLCBzbyB3ZXJlIEF5c2UsIGFuZCBCZWxnaW4uIEl0\nIHdhcyBncmVhdCE=\n",
  "sha": "80e73970fdee49dbdbac27c1f565d1eb1975d519"
}

この実装では、サーバーは厳密に RFC 4648 に準拠した Base64 エンコードコンテンツ(厳密なエンコード方式を使用)を期待します。 422 Unprocessable Content レスポンスが返され、メッセージフィールドは検証エラーのコンテキストを提供します。

http
HTTP/1.1 422 Unprocessable Content
Date: Fri, 28 Jun 2024 12:00:00 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 187

{
  "message": "content is not valid Base64",
  "documentation_url": "https://docs.example.com/en/rest/repos/contents"
}

仕様書

Specification
HTTP Semantics
# status.422

関連情報