REST API - 使用 PUT 方法删除属性

Cab*_*s77 5 rest put

我们只能使用 PUT 方法来更新资源,因此 PATCH 不是一个选项(不幸的是)。

上下文:存在映射到定义为可选和可编辑的属性上的字段的情况,这意味着用户可以删除先前输入和先前保存的值。

我的问题:通过 PUT 方法保存此更改的最佳选择是什么?(从资源中删除属性)

AFAIK 有 3 个选项可用:

  • a) 发送带有空值的属性,例如。"invoiceSerial": ""

  • b) 发送带有明确空值的属性,例如。"invoiceSerial": null

  • c)根本不发送属性,并且在服务器端它应该通过从存储的对象中删除它们来处理所有丢失的可编辑和可选属性

我找不到任何最佳实践,因此对某些标准文档的任何提示都值得赞赏。

cas*_*lin 1

与其他选项相比,选项b看起来更好:

a) 发送带有空值的属性,例如。"invoiceSerial": ""

如果invoiceSerial是一个数字呢?那你会送什么?0?如果0是给定属性的有效值怎么办?

b) 发送带有明确空值的属性,例如。"invoiceSerial": null

null很好地代表了null价值观。

c)根本不发送属性,并且在服务器端它应该通过从存储的对象中删除它们来处理所有丢失的可编辑和可选属性

与选项b相比,这种方法看起来实施起来更复杂。