我正在使用Play框架构建一个Web应用程序,该应用程序通过其REST API与Salesforce集成。为了向其接口发送upsert命令,似乎我必须使用PATCH方法而不是POST方法请求。是否可以使用Play的WSRequest对象并将方法类型更改为PATCH而不是POST?如果没有,我如何使用请求对象并发送PATCH请求?
出于学习目的,什么是PATCH方法以及为什么Salesforce强制使用它而不是POST方法?
答案 0 :(得分:4)
我不确定Play中可用的内容,但是从REST API documentation开始,如果您的库不支持PATCH,这是一种解决方法:
如果您使用的HTTP库不允许覆盖或设置 任意HTTP方法名称,您可以发送POST请求并提供 通过查询字符串参数覆盖HTTP方法
_HttpMethod
。
例如,要更新帐户,这将适用于实际的POST请求:
.../services/data/v23.0/sobjects/Account/0016000000eEhmxAAC?_HttpMethod=PATCH
至于使用PATCH背后的原因,是因为PATCH用于资源的部分更新。也就是说,您只需发送要更新的字段。如果您需要在更新中发送记录的所有字段,PUT可能是更好的选择。 POST通常仅适用于新插入。以下是对示例的解释: http://jasonsirota.com/rest-partial-updates-use-post-put-or-patch
答案 1 :(得分:1)