问题标签 [http-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 回答
2083 浏览

python - 补丁请求文件上传

我有一个 REST API,我正在尝试将数据上传到,基本上是这样的:https ://docs.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/update

现在,由于我唯一的选择是 PATCH,我有哪些选项可以优化数据加载。我已经能够通过使用 data 参数和使用 read() 函数上传文件,但我认为这不是最佳的,因为我猜整个文件都被读入内存。我尝试使用 files 参数(multipaprt 表单编码)并且还查看了 toolbelt 包,但这似乎不适用于 PATCH

这是有效但不是最佳的示例代码

问题是线路

它似乎只接受数据参数。如果我将其更改为

我得到一个空文件。

当我使用 requestToolbelt 包时也是如此。

补丁不能识别文件参数吗?请求文件上没有任何说明。

此外,如果数据参数是唯一的出路,那么在不执行 f.read() 或使用 f.read(n) 迭代指定要读取的字符数的情况下加载文件的最佳方法是什么。没有更好的方法吗?

0 投票
1 回答
117 浏览

rest - 更改uri slug时PATCH与PUT的不同uri

在适当的 REST API 实现中,假设我正在编写一个 API 让用户修改 uri slug,例如更改/acme/first/acme/second.

取决于我是提交当前代表的部分记录 ( patch) 还是整个记录 ( ), uri 是否应该有所不同?putfirst

例如:

反对的uri,因为put意思是“这里有”。

对比

修补的uri 因为patch意味着“修改这里的东西”。

我怀疑这是一个边缘案例,但很有趣,因为几乎所有文档都恰好显示了相同的 uri 用于putvspatch操作,尽管显然post通常是不同的 uri。

0 投票
1 回答
8068 浏览

java - 补丁与合并补丁哪个合适?

尝试查看哪些模型最适合api(低更新,但对象结构可能经常更改,高读取应用程序)

我有这样的资源

  1. 史诗(id、名称、描述、开始日期、结束日期、状态、 故事
  2. 故事(id、名称、描述、开始日期、结束日期、状态、任务
  3. 任务(id、名称、描述、开始日期、解决日期、解决方案)

如果我只需要支持这些更新,

  1. 更新史诗名称或描述或日期或状态
  2. 更新故事名称或描述或日期或状态
  3. 更新任务名称或描述或日期或状态

这有道理吗?

PATCHapplication/merge-patch+json RFC 7396

资源应该匹配目标对象结构

  1. 史诗/{id}
  2. 史诗/{id1}/stories/{id2} .. 等等

PATCHwithapplication/json -我倾向于选择这个,因为没有必要如此严格地执行RFC 7396和灵活地更新更新规则。

您要更新的自定义规则(但从技术上讲 - 我可以只发送需要更新的资源属性,类似于application/merge-patch+json

  1. 史诗/{id}
  2. 史诗/{id1}/stories/{id2} .. 等等

PUTapplication/json

资源应匹配所有字段并创建新对象并替换(或作弊并仅像补丁一样更新)

  1. 史诗/{id}
  2. 史诗/{id1}/stories/{id2} .. 等等

PUTapplication/json

或作弊,只更新补丁,但使用 put

  1. 史诗/{id}
  2. 史诗/{id1}/stories/{id2} .. 等等
0 投票
1 回答
739 浏览

laravel - 如何将数据从 Vue 传递到 Laravel 以获取补丁请求?

我正在尝试将补丁请求从我的 Vuetify 数据表发送到 Laravel,然后发送到 mySQL DB。

这是来自我的 controller.php、我的 api.php 和实际 Vuetify 文件的各种代码片段:

api.php:

机器控制器.php

实际的 axios 补丁要求。在 .vue 文件中:

在望远镜有效载荷部分,我得到了更新的对象,但我也得到了一条消息:

“SQLSTATE [23000]:违反完整性约束:1048 列不能为空。

对于所有列。

我也尝试过这种语法作为补丁方法:

我尝试像这样设置控制器:

但我仍然遇到同样的错误。有人可以帮助我,或者至少指出我正确的方向吗?谢谢!

0 投票
2 回答
71 浏览

marklogic - MarkLogic 中是否有用于 PATCH 的 JavaScript 资源扩展?

我需要从自定义 REST 端点调用补丁方法。

我在 MarkLogic 文档中搜索并找到了这个示例代码 -

我目前使用所有这些 JS 扩展,它们工作得很好。我试图以同样的方式制作补丁功能 -

当我通过我的端点调用补丁方法时,我得到一个“405 Method Not Allowed”。MarkLogic 中是否不允许以这种方式进行补丁,这就是为什么它不包含在示例代码中?

提前致谢。

0 投票
1 回答
445 浏览

spring - Spring Data Rest PATCH 请求不会填充不受字段支持的瞬态属性

我想在实体“用户”上实现 PATCH-Requese,以使用附加的瞬态属性“旧密码”更改密码,以便在 EventHandler 中进行比较。

POST 和 PUT 请求填充属性。

PATCH 请求没有:'oldpassword' 为空。

我在用着

  • spring-boot-starter-parent
  • spring-boot-starter-data-rest (2.1.6)
  • spring-boot-starter-web (2.1.6)
  • spring-boot-starter-data-jpa (2.1.6)
  • 弹簧数据-jpa 2.1.9
  • 弹簧数据休息 3.1.9
  • spring-security 5.1.5(可能不相关)

我试过了

简化的代码是:

实体“用户”

存储库

补丁请求(

事件处理程序

瞬态属性“newpassword”有效,因为我使用了持久属性“password”的设置器。

0 投票
1 回答
64 浏览

java - 支持“PATCH”动词 - WSHttpHandler handleExchange 给出警告:无法处理 HTTP 方法:PATCH

我创建了一个使用 javax.xml.ws.Endpoint 来创建 REST 端点的类:

问题是,当我在 Eclipse 中运行此应用程序并使用以下命令向它发出请求时curlPATCH

我在 Eclipse 控制台中收到以下警告:

2019 年 7 月 30 日下午 3:39:15 com.sun.xml.internal.ws.transport.http.server.WSHttpHandler handleExchange 警告:无法处理 HTTP 方法:PATCH

以下是对我的curl要求的回应:

curl:(52)来自服务器的空回复

这里,在WSHTTPHandler课堂上,我可以看到问题出在哪里:

那么,我有哪些选择?a)我可以WSHTTPHandler用我自己的自定义类替换吗?如果是这样,我该如何告诉我Endpoint我想使用它?或 b) 是否有更新版本的WSHttpHandler、更现代的替代方案或不同的方法来创建我可以使用的 Web 服务来实现这一点?

0 投票
0 回答
638 浏览

rest - PATCH 405(不允许的方法)Groovy

我正在尝试使用 PATCH 方法对 Groovy 脚本进行 HTTP 操作。如果我使用 Postman Interface 执行该请求,我会获得 200 ok,但是当我使用 Groovy 脚本时,我会获得 405 错误代码。邮递员请求: 邮递员请求

该请求是针对带有 JSON 数据的 Groovy 进行的。

处理请求的函数是下一个:

代码日志如下:

0 投票
1 回答
177 浏览

rest - 锁定记录上 PATCH 调用的返回状态,没有更改

我有一个 RESTful API,其中包含一个典型的 PATCH 调用,允许在各种条件下更新字段。在某些情况下(特定状态或值组合),更改会被“锁定”在记录之外。如果用户向所述记录发出 PATCH 请求,但 PATCH 不会导致进行任何更改(即,将字段值设置为与它已经相同的值),那么请求应该返回什么状态?

例如,我有一个记录

我打个电话

由于记录的状态是“锁定”,因此不允许更改。但是,由于 PATCH 正文声明年龄值应该设置为 34,这就是该记录的年龄值已经是什么,即使记录没有被锁定,请求也不会导致任何更改。

请求是否应该返回 200,因为 PATCH 的结果是用户首先请求的结果,或者是 4xx 代码之一(400、403 甚至 409),因为正在“锁定”记录上尝试操作?

0 投票
2 回答
3365 浏览

c# - API Patch 方法返回错误请求 400

我正在使用.net core web api。在我的 API 控制器类中有PATCH如下方法,

testClass如下,

我从邮递员那里调用了 API,它返回 400 BadRequest。

在此处输入图像描述 在此处输入图像描述

我在 Controller 方法中放置了断点,但它没有命中。在我[FromBody] testClass msg从方法参数中删除断点后没有返回400。为什么它在我使用时返回 400 [FromBody] testClass msg?以及如何从 HTTP 客户端调用此控制器方法?

我试过了,它也返回 400 BadRequest

我该如何解决这个问题?请帮我。我删除了上一个问题,这是我真正的问题

更新:

我将邮递员请求更改为。

在此处输入图像描述

之后它的作品。但是当我通过 http 客户端代码调用它时,它提供了400 BadRequest. 如何通过http客户端提供JSON正文正确的方式