5

是否有一种标准化的方式来指示 RESTful PATCH 请求中的字段/参数的空值?

假设我有一个对象,我想直接从对象中删除一个属性并将该更改保存到 MT/DB。在客户端,我只会删除属性(在 JS 中),但是当 PATCHing 到我的 REST API 层时,是否有一种标准化的方式来指示应该删除属性(不是对象,只是属性)?

为了清楚起见/示例,这里是对象的假设 PATCH 路径:

PATCH /service/thing/{id}

和一些示例 PATCH 有效负载:

单一属性更新:

{ "myprop": "changed" }

多属性更新:

{ "myprop": "changed", "anotherprop": "changed" }

对于您想要摆脱"myprop"您的 PATCH,显然不能只提交此有效负载:

{ }

你会做类似的事情:

{ "myprop": undefined }

或者,您会创建一个全新的 DELETE 路线:

DELETE /service/thing/{id}/myprop

或者是其他东西?

4

1 回答 1

3

我会按照PATCH您的建议实施。以一种接受部分表示进行更新的方式。

这样,我将始终发送JSON部分表示。

PATCH { "myprop": "newvalue" }

并用于删除myprop空值。在请求 a 时发回空值GET取决于您。您始终可以忽略null值(与空值不同)。

PATCH { "myprop": null }

注意null而不是undefined. null是一个JSON值。但这只是我的 2cents。

于 2013-10-16T22:42:37.717 回答