【问题标题】:Schema for payload of XML in Salesforce REST API PATCHSalesforce REST API PATCH 中 XML 有效负载的架构
【发布时间】:2014-05-13 15:52:28
【问题描述】:

我浏览了 SFDC REST API 参考,每个示例(据我所知)都有使用 JSON 创建/更新记录的有效负载示例,虽然使用 XML 完全有效,但没有列出架构也没有如何做的例子。

我尝试了许多替代方法,包括

<Opportunity><Name>An Opportunity</Name></Opportunity>

但无论我发送什么,我都会收到“缺少根元素”。我确信必须有模式来遵循更新字段,但遗憾的是似乎缺少文档。我确定我很久以前就解决了这个问题,但我无法回忆或找到要提交的 xml 格式。

不,我不热衷于重写应用程序以使用 JSON 而不是 xml。 :)

提前致谢 克雷格

【问题讨论】:

    标签: xml rest salesforce schema patch


    【解决方案1】:

    我不知道已发布的架构,但是您发布的 XML 应该可以正常工作,考虑到错误,我希望您的代码没有发送实际的 HTTP 正文。这是一个使用 curl 的工作示例。

    foo.xml 包含&lt;Opportunity&gt;&lt;Name&gt;Foo&lt;/Name&gt;&lt;/Opportunity&gt;

    然后我跑

    curl -X PATCH -H "Authorization:Bearer $SID" -H "Content-Type:application/xml" https://na1.salesforce.com/services/data/v29.0/sobjects/opportunity/0063000000o2QgO --data-binary @foo.xml -v
    

    在请求中设置正确的内容类型很重要。运行这个生成

    > PATCH /services/data/v29.0/sobjects/opportunity/0063000000o2QgO HTTP/1.1
    > User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.5
    > Host: na1.salesforce.com
    > Accept: */*
    > Authorization:Bearer {A Sid would appear here}
    > Content-Type:application/xml
    > Content-Length: 43
    > 
    * upload completely sent off: 43 out of 43 bytes
    < HTTP/1.1 204 No Content
    < Date: Tue, 13 May 2014 16:15:58 GMT
    < Sforce-Limit-Info: api-usage=5/5000
    < 
    

    204 是成功补丁调用的预期结果。在浏览器中查看,我可以看到记录确实得到了更新。

    【讨论】:

    • 感谢您的及时回复。至少我知道从哪里开始寻找,因为我知道实际的 xml 正文是正确的。
    猜你喜欢
    • 2021-01-20
    • 1970-01-01
    • 2018-02-06
    • 2022-01-08
    • 2019-04-23
    • 2018-01-26
    • 1970-01-01
    • 1970-01-01
    • 2018-12-31
    相关资源
    最近更新 更多