Rest PUT请求主体是否必须包含整个实体?

Rest PUT请求主体是否必须包含整个实体?,rest,put,Rest,Put,在资源上定义PUT方法时,是否需要/标准/惯例包括资源的整个定义(即创建资源所需的所有内容),或者只发送更新的字段也是可以接受的 例如,如果我有一个具有10个属性(包括一个名为quantity的属性)的资源,并且我希望将该数量更新为指定的值。只放数量可以吗 其他9个属性呢?假设每个属性都可以单独更新,那么简单地将请求主体定义为所有10个属性都是可选的,这是一种好做法吗?使用RESTfull时,PUT用于替换整个资源,因此您希望包含完整的属性集 也就是说,REST在大多数情况下都使用得相当不当,只

在资源上定义PUT方法时,是否需要/标准/惯例包括资源的整个定义(即创建资源所需的所有内容),或者只发送更新的字段也是可以接受的

例如,如果我有一个具有10个属性(包括一个名为quantity的属性)的资源,并且我希望将该数量更新为指定的值。只放数量可以吗


其他9个属性呢?假设每个属性都可以单独更新,那么简单地将请求主体定义为所有10个属性都是可选的,这是一种好做法吗?

使用RESTfull时,PUT用于替换整个资源,因此您希望包含完整的属性集


也就是说,REST在大多数情况下都使用得相当不当,只要您的API有良好的文档记录,您就可以做任何您认为最适合您的情况的事情。

谢谢Justin。理由显然是为了减少带宽/序列化开销,但回想一下我的RMI设计,我总是要求客户机发回修改过的对象,而不仅仅是字段。然后,服务器将决定是询问修改还是进行完全替换。然后,客户机可以非常简单—获取、修改、放置—没有其他逻辑和简单的接口。是的,使用放置来替换整个资源要好得多。偶尔会将用于部分更新。