是否有标准化的方法来指示 RESTful PATCH 请求中字段/参数的空值?
假设我有一个对象,我想直接从该对象中删除一个属性并将该更改保留到 MT/DB。在客户端,我只会删除该属性(在 JS 中),但是当修补到我的 REST API 层时,是否有一种标准化的方法来指示应该删除该属性(不是对象,只是属性)?
为了清楚起见/示例,这里是该对象的假设 PATCH 路径:
PATCH /service/thing/{id}
以及一些示例 PATCH 负载:
单个属性更新:
{ "myprop": "changed" }
多属性更新:
{ "myprop": "changed", "anotherprop": "changed" }
对于想要删除 "myprop"
的 PATCH,您显然不能只提交此有效负载:
{ }
你会做这样的事情吗:
{ "myprop": undefined }
或者,您会创建一个全新的 DELETE 路线吗:
DELETE /service/thing/{id}/myprop
或者,其他什么?
最佳答案
我会像你建议的那样实现PATCH
。以接受部分表示进行更新的方式。
这样我将始终发送 JSON
部分表示。
PATCH { "myprop": "newvalue" }
并删除 myprop
空值。请求 GET
时发回空值由您决定。您始终可以忽略 null
值(与空不同)。
PATCH { "myprop": null }
注意null
而不是undefined
。 null
是一个 JSON
值。
但这只是我的 2 美分。
关于rest - 如何指示/请求删除 REST 补丁中的对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19414979/