[英]PATCH or POST when create a resource and update another resource?
我知道 PATCH 應該更新現有資源,POST 應該創建一個新資源。 但是,我當前的端點必須同時進行更新和創建。
例如:買方向賣方支付購買物品的款項,因此他們的帳戶余額應該會發生變化,並且還應該創建新的付款交易。
我正在考慮將事務對象返回到響應主體。 我應該使用什么方法?
通常PUT
是兩個創建和更新的正確方法。
如果客戶端無法確定目標 URI,則應使用POST
,但如果客戶端可以確定目標 URI,則PUT
是最好的方法。
例如,如果這篇文章不存在, PUT /article/hello-world
應該返回201
created,如果存在並且它被替換了則返回 204/200。
但是,我對您的具體情況有所保留。 在您的示例中,聽起來像:
客戶端也很可能不決定目標 URI 是什么。
那樣的話,我主要只是從交易的角度來考慮這個操作。 如果您想傳達交易對其他資源有影響的信息,您可能需要為此使用Link
標頭。
POST /transactions HTTP/1.1
Content-Type: application/json
{
"from": "/accounts/123",
"to": "/accounts/456",
"quantity": "55.00"
}
回復:
HTTP/1.1 201 Created
Location: /transactions/555513412
Link: </account/123>; rel="invalidates"
Link: </account/456>; rel="invalidates"
請注意,“無效”鏈接關系處於草稿狀態,但這是一個好主意,我在我們的 API 中多次使用它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.