118.17. 使用 Raw Operation
将 HTTP 请求发送到 salesforce,并完全控制调用的所有方面。路由中必须执行任何请求和响应正文的序列化或反序列化。Content-Type
HTTP 标头将根据 format
选项自动设置,但这可通过 rawHttpHeaders
选项覆盖。
参数 | 类型 | 描述 | 默认值 | 必填 |
---|---|---|---|---|
请求正文 |
| HTTP 请求的正文 | ||
rawPath |
| 域名后端点 URL 的部分,如 '/services/data/v51.0/sobjects/Account/' | x | |
rawMethod |
| HTTP 方法 | x | |
rawQueryParameters |
| 以逗号分隔的消息标头列表,作为查询参数包含。不要 url-encode 值,因为这将会被自动完成。 | ||
rawHttpHeaders |
| 以逗号分隔的消息标头列表,作为 HTTP 标头包括 |
118.17.1. 查询示例 复制链接链接已复制到粘贴板!
在本例中,我们将向 REST API 发送查询。查询必须在名为 "q" 的 URL 参数中传递,因此我们将创建一个名为 q 的消息标头,并告知 raw 操作将消息标头包含为 URL 参数:
from("direct:queryExample") .setHeader("q", "SELECT Id, LastName FROM Contact") .to("salesforce:raw?format=JSON&rawMethod=GET&rawQueryParameters=q&rawPath=/services/data/v51.0/query") // deserialize JSON results or handle in some other way
from("direct:queryExample")
.setHeader("q", "SELECT Id, LastName FROM Contact")
.to("salesforce:raw?format=JSON&rawMethod=GET&rawQueryParameters=q&rawPath=/services/data/v51.0/query")
// deserialize JSON results or handle in some other way
118.17.2. SObject 示例 复制链接链接已复制到粘贴板!
在本例中,我们将通过 create
操作中的 REST API 传递。由于 raw
操作不执行任何序列化,因此我们请确保在消息正文中传递 XML
from("direct:createAContact") .setBody(constant("<Contact><LastName>TestLast</LastName></Contact>")) .to("salesforce:raw?format=XML&rawMethod=POST&rawPath=/services/data/v51.0/sobjects/Contact")
from("direct:createAContact")
.setBody(constant("<Contact><LastName>TestLast</LastName></Contact>"))
.to("salesforce:raw?format=XML&rawMethod=POST&rawPath=/services/data/v51.0/sobjects/Contact")
响应是:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Result> <id>0034x00000RnV6zAAF</id> <success>true</success> </Result>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Result>
<id>0034x00000RnV6zAAF</id>
<success>true</success>
</Result>