问题标签 [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.
ajax - 使用 jquery ajax PATCH 方法的 Chrome 数据压缩代理错误
我正在让网页对同一个域 restful 服务进行 ajax HTTP PATCH 调用。仅适用于 chrome 浏览器的手机失败,如下所示
状态码:502 网关错误
无法通过 Chrome 数据压缩代理加载此页面。尝试重新加载页面。
这很烦人,因为我们测试过的所有桌面浏览器和移动版 NOT-chrome 都可以成功地进行 PATCH。实际上,只有在没有任何有效负载的情况下,移动 chrome 才会成功
K. 感谢这里的一些相关讨论,所以我知道原因。我希望这可以解决这个问题并尊重缓存控制标头。同时,你的出行方式是什么?
asp.net - HTTP Patch Verb 在 Windows Server 2012 r2 上不起作用
我正在开发使用 WebApi 进行数据操作的单页应用程序。我的网站托管在 Windows Server 2008 R2 (IIS 7.5.7600.16385) 上并且工作正常,但是在迁移到 Windows Server 2012 R2 (IIS 8.5.9600.16384) HTTP PATCH VERBS 后不起作用,api 调用返回状态码 400“错误请求”。我在 web.config 中尝试了以下代码片段,但没有运气。
一次又一次地谷歌搜索,但没有任何用处,我被困在这里,任何帮助将不胜感激。
asp.net - Web API 2 不处理整数的 PATCH 请求
我在使用 Web API 2 (.net 4.5.1) 时遇到问题,因为它似乎忽略了属性为整数的 PATCH 请求,但处理其他类型没有问题(我测试了字符串和十进制)。
我在http://playapi.azurewebsites.net/api/products设置了一个带有“产品”控制器的不安全测试 API 。如果您对该 URL 执行 GET 操作,您将得到类似此产品的内容:
'Name' 和 'Category' 都是字符串,'Price' 是 Decimal 而 'Stock' 是 Integer。
如果您发送这些请求,它们都可以工作(更新后的实体将获得 200/OK):
- 补丁,http : //playapi.azurewebsites.net/api/products/1
{"Price": 600.00}
- 补丁,http : //playapi.azurewebsites.net/api/products/1
{"Category": "Electronics"}
但是,如果你发送这个,它会返回 200/OK,但不会进行更新并且库存保持在原始值
- 补丁,http : //playapi.azurewebsites.net/api/products/1
{"Stock": 4}
我的控制器代码是相当标准的样板代码(来自脚手架的 ODATA 控制器,但已移至标准 API 控制器):
我的“产品”模型如下:
当我调试控制器时,我看到“补丁”对象有一个_changedProperties
集合,当我执行整数请求时,其中没有项目,但是当我执行任何其他类型的请求时,它具有我更改的键。
Web API 是否应该支持对整数属性的 PATCH 请求?如果是这样,我是否需要在服务器或客户端上做任何特别的事情才能使其工作?
django - HTTP PUT 在 django rest 框架中无法正常工作
我在 django rest 框架中使用以下代码来实现 put 和 patch 功能。PATCH (partial_update) 工作正常,但是,为 PUT 提供更少的字段不会像 PUT 请求那样替换整个资源。例如,如果数据如下所示:
如果我尝试使用以下数据进行 PUT(在http://localhost:800/api/sprints/6/上):
此调用应将描述设置为无。但是描述保留了它的价值,就好像我在做一个补丁一样。如何在更新功能中强制执行资源替换?
PS:我在初始化序列化程序以进行更新时设置了 partial=False。
视图.py:
序列化程序.py:
模型.py
java - 使用 PATCH 和 Jersey 客户端 API 进行单元测试
我正在使用 Jersey 进行 REST API 实现。对于PATCH
(部分更新),我已经实现了我自己的自定义实现,PATCH
因为 Jersey 不支持它。
现在我试图弄清楚如何围绕该实现编写功能测试。我正在将球衣测试框架用于在该框架中具有该支持的其他方法(、、、、PUT
)POST
。GET
DELETE
有没有办法可以扩展球衣测试框架实现来编写我的功能测试PATCH
?如果没有,是否有任何其他可用的测试框架可用于测试我的 JerseyPATCH
实现?
如果有人可以提供任何示例,那就太好了。
python - 通过 PATCH 进行部分更新:如何解析 JSON 数据以进行 SQL 更新?
我正在服务器端实现“补丁”以部分更新我的资源。
假设我没有在 JSON 请求/响应中公开我的 SQL 数据库模式,即 JSON 中的键和表的列之间存在单独的映射,我如何最好地确定在给定 JSON 的情况下在 SQL 中更新哪些列部分更新?
例如,假设我的表有 3 列:col_a
、col_b
和col_c
,并且 JSON 键与表列之间的映射是:a -> col_a, b -> col_b, c -> col_c
。给定JSON-PATCH
数据:
以编程方式将此部分更新应用于col_b
与我的资源对应的表的最佳方法是什么?
当然,我可以在keys_to_columns
某个地方的 dict 中硬编码这些映射,并且在每次请求时patch_data
,我都可以这样做:
然后用于mapped_updates
构造数据库更新的 SQL 语句。如果上面抛出一个KeyError
我知道请求数据是无效的,可以把它扔掉。我需要为我拥有的每个表/资源执行此操作。
我想知道是否有更好的方法。
http - HTTP 方法“PATCH”可以安全地跨代理等使用吗?
假设我的服务器公开了一个使用RFC 5789PATCH
引入的方法的基于 HTTP 的 API 。公司防火墙、代理、缓存、家长控制过滤器等后面的客户端(浏览器或其他)是否有可能在使用此方法时遇到任何问题?如果是这样,这种可能性有多大?
鉴于这PATCH
不是原始 HTTP 规范的一部分,而是稍后介绍的,我可以想象某些程序会因为“无效”方法而简单地拒绝此类请求。另一方面,我希望这样的软件可以简单地通过所有东西,并且最多对某些 HTTP 方法应用一些限制,例如POST
(例如不缓存其结果)。
请注意,我不询问PATCH
服务器端或浏览器内的支持,而只是询问我既不知道也不控制的客户端和服务器之间的组件。此外,PATCH
对于 API 本身是否是一个好主意的问题超出了这个问题的范围。
c# - Azure AD 使用补丁调用更改密码
我目前正在用 C# 开发一个 Web 应用程序。我正在使用 Azure AD 来存储用户信息,因此如果用户愿意,我希望能够在某个时候更改密码。
目前我更改密码的方式是使用 http-patch 调用https://graph.windows.net/ {tenentId}/users/{userkey}?api-version=1.5 ,json 如下所示:
上周这工作得很好。但是当我今天尝试时它没有工作。有任何想法吗?
http - PUT、POST 和 PATCH 有什么区别?
HTTP 协议中的 PUT、POST 和 PATCH 方法有什么区别?
java - 如何在 CXF 中使用 PATCH 方法
我正在尝试使用 JAX-RS 的 CXF 实现在我的客户端中使用 PATCH 方法。起初我将 PATCH 注释定义为
参考这里写的: How to have a @PATCH annotation for JAX-RS?
然后我发现@PATCH 被添加到 CXF 3.1.2 中,所以我在我的 maven 的 pom.xml 中更改了版本,确实有public @interface PATCH
里面,package org.apache.cxf.jaxrs.ext;
代码实际上看起来和我上面发布的完全一样。
但是,当我尝试在我的服务定义上使用此注释时
我最终得到了java.net.ProtocolException: Invalid HTTP method: PATCH
我在上面发布的问题链接中所说的。他们与 Jersey 讨论了一些解决方案,但是我可以在 CXF 中做什么,以便我可以使用:
所以我有几个问题:
- 我怎样才能使这项工作?不,我需要编写自定义 CXF 拦截器吗?
- 如果它不起作用,他们为什么要将 PATCH 注释添加到 CXF 中?
- 另一个主题中的一些人说,上面提到的 PATCH 注释定义对他们有用。怎么会 ?它是否只会在客户端造成麻烦,如果是这样,为什么会这样?
- 为什么我在 CXF 文档中找不到这个注释?我在http://cxf.apache.org/javadoc/latest/查看了 org.apache.cxf.jaxrs.ext 包,但没有看到任何补丁。然而在最新的 cxf 3.1.2 中,我真的可以在这个包中找到它。