Zenn
📚

CRUDとHTTPメソッド

2024/06/29に公開

WEBを支える技術で学んだCRUDとHTTPメソッドについてです。
https://gihyo.jp/book/2010/978-4-7741-4204-3

CRUDとHTTPメソッドの対応

CRUD 意味 メソッド
Create 作成 POST / PUT
Read 読み込み GET
Update 更新 PUT
Delete 削除 DELETE

GET

GETはURIの情報を取得する。Webページの取得、画像の取得、フィードの取得など・・・を行う。

リクエスト例
GET /list HTTP/1.1
Host: example/jp
レスポンス例
HTTP/1.1 201 Created
[
 {"uri": "http://example.jp/list/item1"},
 {"uri": "http://example.jp/list/item2"}
]

POST

1.子リソースの作成

リクエスト例
POST /list HTTP/1.1
Host: example/jp
こんにちは!
レスポンス例
HTTP/1.1 201 Created
Location: http://example.jp/list/item3
こんにちは!

/listに対して新しい子リソースが作成するようにPOSTで指示すると、/listの下に新たにlist/item3というリソースを生成する。

2.リソースへのデータの追加

リクエスト例
POST /log HTTP/1.1
Host: example/jp
2010-10-10T10:13:00Z, GET /log, 200
レスポンス例
HTTP/1.1 200 OK

データの追加のため、レスポンスでは200OKが返された。POSTが作成を意味するのかデータの追加を意味するのかはサーバ側の実装に依存する。

3.ほかのメソッドでは対応できない処理

PUT

リソースの内容の更新と、リソースの作成を行う。
1.リソースの更新
「こんにちは!」のリソースを「こんばんは!」に更新する。

リクエスト例
PUT /list/item3 HTTP/1.1
Host: example/jp
こんばんは!
レスポンス例
HTTP/1.1 200 OK
こんばんは!

2.リソースの作成
example/jp/itemがまだ存在しない場合。

リクエスト例
PUT /item HTTP/1.1
Host: example/jp
/itemの内容
レスポンス例
HTTP/1.1 201 Created
/itemの内容

存在しないURIへのリクエストのため、新しく作成すると解釈して、リクエストが成功した場合は201を返す。/itemがすでに存在していた場合は、リソースの更新処理となる。

DELETE

リソースを削除するメソッド。

リクエスト例
DELETE list/item2 HTTP/1.1
Host: example/jp
レスポンス例
HTTP/1.1 200 OK

参照文献

https://gihyo.jp/book/2010/978-4-7741-4204-3

Discussion

ログインするとコメントできます