使用HTTP PUT,但不完全替换实体

Eve*_*ert 6 rest web-services http put

我正在开发一个REST api,我想知道以下内容:

我想使用HTTP PUT来更新webservice中的一些实体.格式将是一个urlencoded主体.仅更新实际指定的字段而不是整个实体是否可以接受?

我问,因为PUT是一个非常方便的方法来做一些更新,但我不希望它们删除字段,如果它们恰好拼错其中一些.另外,我不想强​​制实现者始终必须首先进行GET并复制他们可能实际上不使用的每个字段.

Ton*_*Lee 2

Put 仅用于完全替换。有一个关于动词 PATCH 的提案来解决您遇到的问题(http://www.ietf.org/internet-drafts/draft-dusseault-http-patch-14.txt

然而,补丁可能仍然不是您想要的。发送的是更新资源,可以执行诸如递增计数器之类的操作,因此与 put 不同,它不是幂等的。

您可以将每个字段公开为资源并对每个字段执行多次放置。您可以将看跌期权流水线化以减少额外的延迟。