201 Createdについて
201 Createdの概要
リクエストの結果新しいリソースが作成されたHTTPステータスコード | ||
201 Created 概要 201 Createdは、クライアントのリクエストが成功し、新しいリソースが作成されたことを示すHTTPステータスコードです。このコードは主にPOSTリクエストの応答として返され、新規リソースの場所(URL)はレスポンスヘッダーの |
||
意味 クライアントのリクエストにより、新しいリソースが正常に作成されました。 |
201 Createdはどのような時に返されるか
- POSTリクエストで新しいリソースが作成された場合
- PUTリクエストで指定されたリソースが新規作成された場合
- REST APIで新しいデータエントリやオブジェクトが追加された場合
201 Createdの具体例
POSTリクエストによる新規リソースの作成
POST /api/resource HTTP/1.1 Host: example.com Content-Type: application/json { "name": "Sample Resource", "type": "example" }
レスポンス例:
HTTP/1.1 201 Created Location: https://example.com/api/resource/123 Content-Type: application/json { "id": 123, "name": "Sample Resource", "type": "example" }
解説: クライアントがPOSTリクエストを送信し、サーバーが新しいリソースを作成した場合に201ステータスコードを返します。レスポンスヘッダーのLocation
には作成されたリソースのURLが指定されます。
PUTリクエストによるリソース作成
PUT /api/resource/123 HTTP/1.1 Host: example.com Content-Type: application/json { "name": "Updated Resource", "type": "example" }
レスポンス例:
HTTP/1.1 201 Created Content-Type: application/json { "id": 123, "name": "Updated Resource", "type": "example" }
解説: クライアントがPUTリクエストを使用して指定されたリソースを新規に作成した場合にも、201ステータスコードが返されます。PUTではリソースの作成と更新の両方が行われる可能性がありますが、新規作成の場合には201が適切です。
注意点
201 Createdを返す際の注意点:
- Locationヘッダーの設定
新しく作成されたリソースのURLをLocation
ヘッダーで明示する必要があります。 - 適切なメソッドの選択
新規リソースの作成には通常POSTまたはPUTを使用しますが、適切なメソッドを選択してください。
関連するHTTPステータスコードとの比較
201 Createdと関連性のあるステータスコードについて解説します。
- 200 OK: リクエストが成功した場合に使用されますが、新しいリソースが作成された際には201が推奨されます。
- 204 No Content: リクエストが成功したが、レスポンスボディを返さない場合に使用されます。
これらの違いを理解することで、適切な用途で201ステータスコードを利用できます。