问题标签 [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.
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) 迭代指定要读取的字符数的情况下加载文件的最佳方法是什么。没有更好的方法吗?
rest - 更改uri slug时PATCH与PUT的不同uri
在适当的 REST API 实现中,假设我正在编写一个 API 让用户修改 uri slug,例如更改/acme/first
为/acme/second
.
取决于我是提交当前代表的部分记录 ( patch
) 还是整个记录 ( ), uri 是否应该有所不同?put
first
例如:
反对新的uri,因为put
意思是“这里有”。
对比
修补旧的uri 因为patch
意味着“修改这里的东西”。
我怀疑这是一个边缘案例,但很有趣,因为几乎所有文档都恰好显示了相同的 uri 用于put
vspatch
操作,尽管显然post
通常是不同的 uri。
java - 补丁与合并补丁哪个合适?
尝试查看哪些模型最适合api
(低更新,但对象结构可能经常更改,高读取应用程序)
我有这样的资源
- 史诗(id、名称、描述、开始日期、结束日期、状态、 故事)
- 故事(id、名称、描述、开始日期、结束日期、状态、任务)
- 任务(id、名称、描述、开始日期、解决日期、解决方案)
如果我只需要支持这些更新,
- 更新史诗名称或描述或日期或状态
- 更新故事名称或描述或日期或状态
- 更新任务名称或描述或日期或状态
这有道理吗?
PATCH
和application/merge-patch+json
RFC 7396
资源应该匹配目标对象结构
- 史诗/{id}
- 史诗/{id1}/stories/{id2} .. 等等
PATCH
withapplication/json
-我倾向于选择这个,因为没有必要如此严格地执行RFC 7396
和灵活地更新更新规则。
您要更新的自定义规则(但从技术上讲 - 我可以只发送需要更新的资源属性,类似于application/merge-patch+json
)
- 史诗/{id}
- 史诗/{id1}/stories/{id2} .. 等等
PUT
和application/json
资源应匹配所有字段并创建新对象并替换(或作弊并仅像补丁一样更新)
- 史诗/{id}
- 史诗/{id1}/stories/{id2} .. 等等
PUT
和application/json
或作弊,只更新补丁,但使用 put
- 史诗/{id}
- 史诗/{id1}/stories/{id2} .. 等等
laravel - 如何将数据从 Vue 传递到 Laravel 以获取补丁请求?
我正在尝试将补丁请求从我的 Vuetify 数据表发送到 Laravel,然后发送到 mySQL DB。
这是来自我的 controller.php、我的 api.php 和实际 Vuetify 文件的各种代码片段:
api.php:
机器控制器.php
实际的 axios 补丁要求。在 .vue 文件中:
在望远镜有效载荷部分,我得到了更新的对象,但我也得到了一条消息:
“SQLSTATE [23000]:违反完整性约束:1048 列不能为空。
对于所有列。
我也尝试过这种语法作为补丁方法:
我尝试像这样设置控制器:
但我仍然遇到同样的错误。有人可以帮助我,或者至少指出我正确的方向吗?谢谢!
marklogic - MarkLogic 中是否有用于 PATCH 的 JavaScript 资源扩展?
我需要从自定义 REST 端点调用补丁方法。
我在 MarkLogic 文档中搜索并找到了这个示例代码 -
我目前使用所有这些 JS 扩展,它们工作得很好。我试图以同样的方式制作补丁功能 -
当我通过我的端点调用补丁方法时,我得到一个“405 Method Not Allowed”。MarkLogic 中是否不允许以这种方式进行补丁,这就是为什么它不包含在示例代码中?
提前致谢。
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(可能不相关)
我试过了
- 注释 @JsonProperty("oldpassword") (即使 POST 和 PUT 工作)。
- 注释@JsonDeserialize(JSON:@Transient 字段未序列化)
- 配置 Jackson 以禁用检查 @Transient 注释(JPA Transient Annotation 和 JSON)
- @JsonAutoDetect(fieldVisibility = Visibility.ANY) 作为类装饰器
简化的代码是:
实体“用户”
存储库
补丁请求(
事件处理程序
瞬态属性“newpassword”有效,因为我使用了持久属性“password”的设置器。
java - 支持“PATCH”动词 - WSHttpHandler handleExchange 给出警告:无法处理 HTTP 方法:PATCH
我创建了一个使用 javax.xml.ws.Endpoint 来创建 REST 端点的类:
问题是,当我在 Eclipse 中运行此应用程序并使用以下命令向它发出请求时curl
:PATCH
我在 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 服务来实现这一点?
rest - PATCH 405(不允许的方法)Groovy
我正在尝试使用 PATCH 方法对 Groovy 脚本进行 HTTP 操作。如果我使用 Postman Interface 执行该请求,我会获得 200 ok,但是当我使用 Groovy 脚本时,我会获得 405 错误代码。邮递员请求: 邮递员请求
该请求是针对带有 JSON 数据的 Groovy 进行的。
处理请求的函数是下一个:
代码日志如下:
rest - 锁定记录上 PATCH 调用的返回状态,没有更改
我有一个 RESTful API,其中包含一个典型的 PATCH 调用,允许在各种条件下更新字段。在某些情况下(特定状态或值组合),更改会被“锁定”在记录之外。如果用户向所述记录发出 PATCH 请求,但 PATCH 不会导致进行任何更改(即,将字段值设置为与它已经相同的值),那么请求应该返回什么状态?
例如,我有一个记录
我打个电话
由于记录的状态是“锁定”,因此不允许更改。但是,由于 PATCH 正文声明年龄值应该设置为 34,这就是该记录的年龄值已经是什么,即使记录没有被锁定,请求也不会导致任何更改。
请求是否应该返回 200,因为 PATCH 的结果是用户首先请求的结果,或者是 4xx 代码之一(400、403 甚至 409),因为正在“锁定”记录上尝试操作?
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正文正确的方式