如何在处理 PUT 调用时有效地检查资源字段是否正在更新
How to efficiently check if a ressource field is beeing updated when handling a PUT call
选项 1:如果前面没有更新,则发送空字段。检查背面是否为空。
选项 2:如果未更新,则不在请求中包含字段。检查背面是否存在字段。
选项 3:在前面发送一个字段值,即使它与旧值相同。检查请求字段是否与背面的数据库现有值相同。
PUT
请求的语义是正文完全代表了资源的新状态。客户端发送的表示应该完全覆盖数据层中的现有表示。
根据您的选择,缺少的属性可以默认为 empty/null,也可以导致 422 UNPROCESSABLE ENTITY
(如果您对 WebDAV 过敏,则为 400 BAD REQUEST
)。任何具有 empty/null 值的属性都将在数据层中设置为 empty/null。
可能不需要检查字段是否相同。破坏数据库中的内容。
如果要更新字段的子集,您需要 PATCH
、POST
或 micro-resources 和 PUT
。
选项 1:如果前面没有更新,则发送空字段。检查背面是否为空。
选项 2:如果未更新,则不在请求中包含字段。检查背面是否存在字段。
选项 3:在前面发送一个字段值,即使它与旧值相同。检查请求字段是否与背面的数据库现有值相同。
PUT
请求的语义是正文完全代表了资源的新状态。客户端发送的表示应该完全覆盖数据层中的现有表示。
根据您的选择,缺少的属性可以默认为 empty/null,也可以导致 422 UNPROCESSABLE ENTITY
(如果您对 WebDAV 过敏,则为 400 BAD REQUEST
)。任何具有 empty/null 值的属性都将在数据层中设置为 empty/null。
可能不需要检查字段是否相同。破坏数据库中的内容。
如果要更新字段的子集,您需要 PATCH
、POST
或 micro-resources 和 PUT
。