![](/img/trans.png)
[英]Should I use PUT or POST to add a new subitem to an existing item?
[英]Should I use Post or Put to edit a person in a database and which should I use to add a new person?
所以這是現在的方法:
POST person/personId/edit
https://api.example.com/*key*/person/*personId*/edit?FName=Blah
我希望這可以將personId的人的名字更改為Blah。
如果我需要添加一個人,我會說:
PUT person/create
https://api.example.com/*key*/person/create
它將添加一個具有新personId的人員。
我對POST和PUT的解釋一直是:
POST-服務器將收到一個實體,該實體可用於執行操作或創建資源。 如果端點的意圖是創建資源,則POST將始終創建一個NEW資源。 在任何情況下,每個POST都將被處理而不考慮資源的狀態。 您只是將信息發布到服務器上以便對其進行操作。
例:
PUT-服務器將收到一個旨在創建或替換資源的實體(例如,具有ID)。 如果資源已經存在,則將其替換為請求中的資源,否則將創建一個新資源。 在所有情況下,某些東西都會保留在服務器上。 必須提供一種唯一標識實體的方法。 換句話說,客戶端是創建ID的客戶端,因為如果需要創建實體,則將使用該ID。 我認識的大多數人都為這個現實而掙扎。
例:
一般約定通常為:
GET => READ
POST => CREATE
DELETE => DELETE
PUT => UPDATE
我可以看到的區別是您還使用了不同的URI,最常用的是單個資源URI。 但是,無論如何這值得商de,這取決於您的喜好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.