111.17. 使用 Raw Operation
将 HTTP 请求发送到 salesforce,并完全控制调用的所有方面。任何请求序列化或反序列化和响应正文都必须在路由中执行。Content-Type HTTP 标头将根据格式选项自动设置,但可以通过 rawHttpHeaders 选项覆盖。
| 参数 | 类型 | 描述 | 默认值 | 必填 |
|---|---|---|---|---|
| 请求正文 |
| HTTP 请求的正文 | ||
| rawPath |
| 域名后端点 URL 的部分,如 '/services/data/v51.0/sobjects/Account/' | x | |
| rawMethod |
| HTTP 方法 | x | |
| rawQueryParameters |
| 以逗号分隔的消息标头列表,以作为查询参数包含。不要 url-encode 值,因为这将是自动进行的。 | ||
| rawHttpHeaders |
| 以逗号分隔的消息标头列表,以包括为 HTTP 标头 |
111.17.1. 查询示例 复制链接链接已复制到粘贴板!
在本例中,我们将向 REST API 发送查询。查询必须在名为"q"的 URL 参数中传递,因此我们将创建一个名为 q 的消息标头,并告知原始操作将该消息标头包含为 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
111.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")
响应是:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Result>
<id>0034x00000RnV6zAAF</id>
<success>true</success>
</Result>