1

以下带有空""路径的“删除”JSON 补丁的标准结果是什么?

[{ "op": "remove", "path": ""}]

是否应该清除整个对象,等于分配{}?在http://jsonpatch.com/它说:要指向文档的根,请使用空字符串作为指针。所以我猜根上的“删除”会删除整个对象,对吧?

我尝试了两个不同的 JSON Patch 库,结果有两个不同:

官方接受的标准结果是什么?我在 RFC 中检查了 JSON 补丁(https://www.rfc-editor.org/rfc/rfc6902)但找不到任何东西。

4

1 回答 1

1

RFC 6902 引用此内容以进行进一步的错误处理:https ://www.rfc-editor.org/rfc/rfc5789#section-2.2

对我来说,这部分似乎符合要求:

Resource not found:  Can be specified with a 404 (Not Found) status
  code when the client attempted to apply a patch document to a non-
  existent resource, but the patch document chosen cannot be applied
  to a non-existent resource.

由于您基本上没有定义任何资源 - 甚至没有/更清楚地指代根/整个对象。

我猜这两个库的区别在于这两个通常被认为是相同的:
/my/resource
/my/resource/

但通常非/路径会自动 301 重定向到有路径的路径/。所以我个人会选择 404 响应"path": ""

于 2017-09-24T17:14:09.807 回答