RESTにおけるPUTとPATCHの違い

結論

PUT:既存リソースを完全な上書き(もし既存リソースが存在しなければ新規作成)

PATCH:送信されたデータの範囲での部分的なリソースの上書き

具体例

{
 "FirstName": "太郎",
 "LastName": "山田",
 "age": 25,
 "sex": male,
 "State": Tokyo
}

上記のようなデータがあると仮定します。

このリソースに対して、次の“PUT"リクエストを送信してみます。

{
 "FirstName": "一郎",
}

{
 "FirstName": "一郎",
}

すると結果はこの通り、完全にデータが上書きされ、LaseNameやageといった情報は消えてしまいます。

では同じリソースに対して“Patch"リクエストを送信するとどうなるでしょうか。

{
 "FirstName": "一郎",
}

{
 "FirstName": "一郎",
 "LastName": "山田",
 "age": 25,
 "sex": male,
 "State": Tokyo
}

今度はFirstNameだけが更新され、それ以外の値は以前のままという結果になりました。

これがPUTとPATCHの違いです。

メソッド一覧

GET:リソースの現在の状態をJSONやXMLの形式で取得

POST:リソースの新規作成

DELETE:リソースの削除

PUT:リソースの完全置換(※存在しなければ上書き)

PATCH:リソースの部分置換

Other

Posted by regardie