HTTP Verbs: 談 POST, PUT 和 PATCH 的應用
HTTP Verbs: 談 POST, PUT 和 PATCH 的應用 HTTP Verbs: 談 POST, PUT 和 PATCH 的應用 March 20, 2012 HTTP , REST ihower 在初學REST的這幾年,我都認為這幾個 HTTP Verbs 就是對應 CRUD: POST = 新增 GET = 讀取 PUT = 更新 DELETE = 刪除 後來在設計 API only 的 Web service 時,常常搞不清楚到底要用 PUT 還是 POST,才發現我被 Rails 的鷹架範例誤導了(被框架框住想法了?),所謂的 PUT 其實也可以用到新增,而且還有一個蠻新的 HTTP Verb 叫做 PATCH,像 Github API 和 Rails 4 都開始採用。 PUT 比較正確的定義是 Replace (Create or Update),例如 PUT /items/1 的意思是替換 /items/1 ,如果已經存在就替換,沒有就新增。PUT 必須包含 items/1 的所有屬性資料。 但是這個行為通常不怎麼好用,如果只是為了更新 items/1 的其中一個屬性,就需要重傳所有 items/1 的屬性也太浪費頻寬了,所以後來又有新的 PATCH Method 標準,可以用來做部分更新(Partial Update)。 用幾個 Ruby code