如何在处理PUT调用时有效地检查资源字段是否正在更新

时间:2017-01-12 13:54:02

标签: api django-rest-framework put restful-architecture

选项1:如果未在前面更新,则发送空字段。检查背面是否为空。

选项2:如果未更新,请勿在请求中包含字段。检查背面是否存在字段。

选项3:即使它与旧值相同,也会在前面发送一个字段值。检查请求字段是否与后面的数据库现有值相同。

1 个答案:

答案 0 :(得分:1)

PUT请求的语义是主体完全代表资源的新状态。客户端发送的表示应完全覆盖数据层中的现有表示。

根据您的选择,缺少的属性可以默认为空/ null,也可以导致422 UNPROCESSABLE ENTITY(或400 BAD REQUEST如果您对WebDAV过敏)。任何具有空/空值的属性都将在数据层中设置为空/空。

可能无需检查字段是否相同。只是破坏了数据库中的内容。

如果您想更新字段子集,则需要PATCHPOST或微资源以及PUT