簡體   English   中英

Http PUT做增量更新

[英]Http PUT to do incremental updates

我們已經實現了RESTful Web服務。 這是它的樣子

GET /person/1234
GET /person/list

POST /person
POST /person/list

PUT /person/1234
PUT /person/list

基本上,要創建一個Person,您可以POST到/ person或/ person / list

要更新某人,請將其輸入/ person / 1234或/ person / list

一個人看起來像這樣:

<person>
  <id>1234</id>
  <name>Name1</name>
  <age>50</age>
  <education>high school</education>
</person>

問題:我可以使用PUT通過發送來更新某人

<person>
  <age>55</age>
</person>

據我了解PUT,您無法將其用於增量更新。 我不應該使用POST來做嗎?

我們可以放松PUT對這個用例的定義,使術語變得簡單。 因為PUT意味着更新,POST將意味着創建。

假設您不能要求客戶端發送更新的完整資源表示。

如果您的客戶支持它,我認為PATCH是您正在尋找的:

PATCH以可預測且有效的事務方式覆蓋指定資源的一部分(如果無法執行整個補丁,則服務器不應該執行任何部分)

你會被反復告知你不應該做部分PUT。 規范說你不應該這樣做。 但是,我還沒有聽到有關這樣做的負面影響的令人信服的論點。

關於這個問題的一個較長的主題是http://tech.groups.yahoo.com/group/rest-discuss/message/17500

雖然不是很流行,但HTTP中有一個PATCH動詞 這是它的目的,但不確定是誰實現它。 POST通常用於補丁,但據我所知,它不是REST標准,但是如果你在你的環境中得到了這個約定,你可以實現它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM