【问题标题】:How do you indicate/request the deletion of an object property in a REST patch您如何指示/请求删除 REST 补丁中的对象属性
【发布时间】:2013-10-25 06:00:01
【问题描述】:

是否有一种标准化的方式来指示 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

或者,别的什么?

【问题讨论】:

  • 我以前用过这个,它是 "myprop" : null

标签: rest


【解决方案1】:

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

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

PATCH { "myprop": "newvalue" }

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

PATCH { "myprop": null }

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-21
    • 2022-01-18
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-24
    相关资源
    最近更新 更多