是否有标准化的方法为RESTful PATCH请求中的字段/参数指示空值?
假设我有一个对象,我想直接从对象中删除一个属性并将该更改保留到MT / DB。在客户端,我只是删除属性(在JS中),但是当PATCH到我的REST API层时,是否有一种标准化的方式来指示属性(不是对象,只是属性)应该被删除?
为了清楚/示例,这里是对象的假设PATCH路由:
PATCH /service/thing/{id}
和一些示例PATCH有效负载:
单一属性更新:
{ "myprop": "changed" }
多属性更新:
{ "myprop": "changed", "anotherprop": "changed" }
对于想要摆脱"myprop"
的PATCH,你显然不能只提交这个有效载荷:
{ }
你会做点什么:
{ "myprop": undefined }
或者,你会创建一个全新的DELETE路线:
DELETE /service/thing/{id}/myprop
或者其他什么?
答案 0 :(得分:1)
我会像你提议的那样实施PATCH
。以某种方式接受部分表示更新。
这样我总是会发送JSON
部分表示。
PATCH { "myprop": "newvalue" }
删除myprop
空值。请求GET
时发回空值取决于您。您始终可以忽略null
值(与空值不同)。
PATCH { "myprop": null }
注意null
而不是undefined
。 null
是JSON
值。
但这只是我的2点。