问题标签 [json-patch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
325 浏览

angularjs - AngularJS 的任何等效的 json-patch js

从两个不同的对象中查找补丁的任何 angularJS 等效项。

我可以找到一些最新版本的 angualr,但找不到 angularJS 1.x 版本。如果有人熟悉任何此类 npm 包,请回答。

我可以在 Javascript 中找到以下内容,但没有 AngularJs 支持,或者有没有办法可以在 AngularJS 中进行以下任何工作?

  • Starcounter-Jack/JSON-Patch
  • bruth/jsonpatch-js
  • dharmafly/jsonpatch.js
  • 瞬间
  • RFC6902

这些是少数几个 JS 示例。我可以在 AngularJs 中生成以下补丁的任何等价物都会有所帮助:

{ "op": "replace", "path": "/baz", "value": "boo" }

0 投票
1 回答
755 浏览

c# - Marvin.JsonPatch 无法识别 PATCH 请求

我正在尝试向 Web API 方法发送 AJAX PATCH 请求,并让Marvin.JsonPatch识别修补对象。

到目前为止,我发送到服务器的所有内容都导致收到一个空请求。

Web API 控制器方法如下所示:

我正在使用HttpClient这样的方式发布(不能async在此应用程序中使用)...

但是当控制器是它时,patchedOrder参数是null.

在控制器上调试时,我也尝试过

但这会返回一个空字符串 - 谁能解释为什么?

更新:
这是传递给 HttpClient 时 JsonPatch 文档的内容...

0 投票
0 回答
1172 浏览

angular - Angular/.NET Web API 项目中的 JsonPatch

我正在使用 KevinDockx 的JsonPatchVisual Studio 扩展。我的项目使用.NET Web API(不是核心)和Angular (6). .Net Web API不支持JsonPatchDocument命名空间,因此需要 KevinDock 的JsonPatch扩展。

我在这里阅读他的文档:https ://github.com/KevinDockx/JsonPatch/blob/master/README.md

JsonPatch由两部分组成:

在客户端(API 的消费者)上:JsonPatchDocument / JsonPatchDocument 类构建本质上是一个更改集,以应用于您的 API 端的对象。

在(Web)API 级别:将这些更改应用到对象的 ApplyTo 方法。

但我无法理解第 1 部分,他在客户端上构建了一个 JsonPatchDocument 类。就我而言,我认为这意味着我需要JsonPatchDocument在 Angular 的某个地方构建它。这一步的代码是:

但是,我不确定如何在我的 Angular 代码中实现这部分代码,或者我是否正确解释了这部分指令。例如,假设我已经JsonPatch通过 NuGet 包管理器控制台在我的 API 上安装了 - 那么我如何从 Angular ( JsonPatchDocument<DTO.Expense> patchDoc = new JsonPatchDocument<DTO.Expense>();) 引用 JsonPatchDocument,因为 Angular 没有这个安装?有没有人JsonPatch在 Angular 项目中合作过足以为我解释这部分文档?

0 投票
0 回答
1186 浏览

asp.net - 在 REST 中应用 PATCH 之前验证值

我正在寻找一种方法来验证和检查发送到我的 PATCH 方法以进行更新的模型的值。我还没有找到我的答案。

我已经阅读了 JsonPatch 文档,但没有找到我想要的。

场景:我有一个 RESTful Web API,并说我有一个名为“用户”的资源。假设客户端想要部分更新“用户”资源:(PATCH api/users/{id}),例如,当客户端发送 JsonPatch 文档时,我必须检查是否发送电子邮件进行更新,如果是,我必须检查电子邮件是否重复。那么,我怎么能用下面的方法做到这一点:(我使用 ASP.NET Web API)

0 投票
1 回答
702 浏览

c# - 为什么我的 PATCH 请求在 ASP.NET 控制器中为空?

我有以下 ASP.net 核心控制器:

控制器允许我修补现有实体。这是模型:

对于我的测试,我正在使用postman在实体上发送补丁。PATCH我选择了针对此 URL的动词:

在标题中,我添加了Content-Type条目并将其设置为application/json-patch+json.

这是请求的正文:

我启动了应用程序并在控制器上设置了一个断点。使用正确的租户 ID 和实体 ID 命中断点。但是,entityPatches没有任何操作:

因此,无法更新IsAuthorized目标的属性。EntityModel我希望该Operations属性具有一个replace操作,如 HTTP 请求中所定义。

问题

为什么类的Operations属性JsonPatchDocument缺少 HTTP 请求正文中定义的补丁操作?

0 投票
0 回答
634 浏览

c# - ASP.Net Core 中是否已经定义了 application/json-patch+json 的常量?

Content-Type在修补实体时使用的 ASP.Net Core 中查看以下内容:

MediaTypeNames在这个 SO question中回答了这个类,但它没有补丁选项。

0 投票
0 回答
1838 浏览

spring-boot - 使用 Jackson 序列化对 JSON PATCH 的请求

我正在使用 Java Spring Boot 作为 API 的网关,该 API 具有使用 JSON Patch 的 PATCH 端点。如果有不同的类型,是否可以使用 Jackson 序列化 JSON Patch 文档?例如,如果我希望我的 JSON Patch 文档具有 3 个值类型不同的操作,Jackson 是否可以以 3 种不同的方式序列化每个操作?

我目前正在使用 @RequestBody 注释来反序列化我从前端应用程序收到的请求。

我是 Spring Boot 菜鸟,因此对建议和替代解决方案持开放态度。

0 投票
1 回答
308 浏览

python - 将 json 补丁应用到 Mongoengine 文档

我正在尝试将 json-patch 应用于 Mongoengine 文档。

我正在使用这些 json-patch 库:https ://github.com/stefankoegl/python-json-patch和 mongoengine 0.14.3 和 python 3.6.3

这是我的实际代码:

有没有更好的方法来保存编辑过的 json 文档?

我已经增强了一点代码:

但是,有没有办法不将文档转换为 json?

0 投票
1 回答
1031 浏览

java - 根据要求自定义 Json Patch

我正在使用Json Patch库来执行使用 REST 的 Patch 操作。现在我有以下 json 文档:

现在根据Json Patch 文档,我们在标题级别可以使用以下路径更新ref r1/ref/r1

现在我正在尝试对行级child ref执行操作。由于 child 是一个数组,我可以使用 path /child/0/ref/cc1。但从路径中可以看出,我必须指定索引,在前一种情况下也为 0。

现在对于 API 消费者来说,要求他们给出数组的索引变得很困难。那么有什么方法可以自定义 json 补丁,这样我们就可以绕过索引要求,或者还有什么其他方法可以处理这种情况?

0 投票
0 回答
71 浏览

angularjs - 一个端点的 PATCH 请求失败,但对其他端点有效

我对测试有点陌生,正在为 yeoman angular-fullstack 生成器生成的 MEAN-stack Web 应用程序编辑测试。我已经将一个虚拟对象发布到我的 mongo 数据库中,并且可以ID通过 mongo shell 查看该对象及其。

我可以对对象执行GET和请求;PUT但是,尝试对ID返回执行 PATCH 请求OPERATION_PATH_UNRESOLVABLE。有没有人对为什么会发生这种情况有任何建议?

我在下面包含了一个代码示例,此代码非常适用于我的其他端点。我只收到一个特定端点的错误。

我希望输出为 200 但收到 500 内部服务器错误。我的记录器返回 OPERATION_PATH_UNRESOLVABLE