我们已经实施了RESTful Web服务。这是它的样子
GET /person/1234
GET /person/list
POST /person
POST /person/list
PUT /person/1234
PUT /person/list
基本上,要创建一个Person,您可以POST到/ person或/ person / list
要更新某人,请将其PUT转至/ 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将意味着创建。
假设您无法要求客户端发送更新的完整资源表示。
答案 0 :(得分:1)
如果您的客户支持,我认为您正在寻找PATCH:
PATCH 以可预测且有效的事务方式覆盖指定资源的一部分(如果无法执行整个补丁,则服务器不应该执行任何部分)
答案 1 :(得分:1)
你会被反复告知你不应该做部分PUT。规范说你不应该这样做。但是,我还没有听到有关这样做的负面影响的令人信服的论点。
此主题的一个较长线程是http://tech.groups.yahoo.com/group/rest-discuss/message/17500
答案 2 :(得分:0)
虽然不是很受欢迎,但有一个PATCH verb in HTTP。这是它的目的,但不确定是谁实现它。 POST通常用于补丁,但据我所知,它不是REST标准,但是如果你在你的环境中得到那个约定,你可以实现它。