我正在开发一个REST api,我想知道以下内容:
我想使用HTTP PUT来更新webservice中的一些实体.格式将是一个urlencoded主体.仅更新实际指定的字段而不是整个实体是否可以接受?
我问,因为PUT是一个非常方便的方法来做一些更新,但我不希望它们删除字段,如果它们恰好拼错其中一些.另外,我不想强制实现者始终必须首先进行GET并复制他们可能实际上不使用的每个字段.
解决方法
Put仅用于完全替换.动词PATCH有一个建议来解决你遇到的问题(
http://www.ietf.org/internet-drafts/draft-dusseault-http-patch-14.txt)
然而,补丁仍然可能不是你想要的.发送的是一个更新资源,它可以执行增量计数器之类的操作,因此,与put不同,它不是幂等的.
您可以将每个字段公开为资源,并对每个字段执行多次放置.你可以通过pipeline来减轻额外的延迟.