- 打印
本指南将帮助您了解 HTTP 连接器的全部功能。
如果要将 MES 或 ERP 等外部系统连接到 Tulip,则需要使用 HTTP 连接器。Tulip 的 HTTP 连接器可以连接大多数类型的 HTTP API,包括 REST 和 SOAP。
想了解如何构建 HTTP 连接器?参加HTTP 连接器大学课程!
了解连接器函数
在 HTTP 连接器中,您可以编写一系列连接器函数,使用预定义输入运行常见类型的 HTTP 请求。连接器函数是调用 API 的单个操作。Tulip HTTP 连接器函数支持以下方法:
- GET
- 头
- POST
- PUT
- 修补
- 删除
并修改以下字段:
- 主机名、端口和路径
- 身份验证(无、Basic Auth、OAuth 2)
- 请求头
- 查询参数
- 请求正文(JSON、表单 URL-编码、XML 或纯文本)
:::(Info) (注)该选择将影响 Content-Type 标头。例如,如果要使用纯文本选项发送 JSON,则必须在标头中手动硬编码 Content-Type 为 "application/json":
然后可以对响应进行处理,并从中提取信息:
- 响应标头
- 响应主体(使用 json-query 的 JSON 或使用 xpath 的 XML)
HTTP 连接器在输出中支持以下数据类型:
- 文本
- 整数
- 浮点数
- 布尔型
- 数据时间
- 包含上述所有数据类型的对象
- 包含上述所有数据类型的数组
*日期时间解析支持
- 以毫秒为单位的 OData 时间戳,自 1970 年 1 月 1 日(世界协调时)起
- 解释为自 1970 年 1 月 1 日(世界协调时)起毫秒的数字
- ISO 8601 日期字符串
创建连接器
单击 "连接器 "页面右上方的 "添加连接器",然后为连接器命名并选择HTTP。
然后,你会看到**Environment**标签。如果你想设置多个环境,请参阅本独立指南
选择连接器后,选择 "添加连接细节"(Add Connection Details),添加要查询的服务器的更多细节。
共有 5 个选项。
**主机:**只包含要查询的域。请勿包含 http:// 或 https:// 例如:myaccount.restlet.api.netsuite.com
**端口:**这应由您要查询的服务指定。HTTP 请求通常使用端口 443。
**TLS:**如果使用 HTTPS,请选择 "是";如果仅使用 "HTTP",请选择 "否"。
单击 "测试"查看是否能成功连接到服务器,然后单击 "保存"。
要复制或删除连接器,请返回连接器页面,然后单击特定连接器右侧的三个点。
创建连接器功能
单击 "功能 "选项卡上的 "添加新功能"按钮创建新功能。
然后,你会看到一系列编辑函数的选项。
首先,在页面左上方为函数命名。
然后,单击添加功能输入,开始添加输入。举例说明:
如果要测试 HTTP 连接器函数,请为每个输入添加一个 "测试值"。
然后,在 URL 末尾添加一个端点,并选择 HTTP 请求类型。
选择查询参数,开始添加键/值对。在值字段中使用已定义的输入。
在输入名称前后添加 $,例如,如果输入名称是 "city
_name",则键入$city_name$
。
处理回复
对输入和输出感到满意后,选择右上角的 "测试"以创建响应示例。
您将在测试结果部分看到一个 JSON 或 XML 响应。现在,您可以将此响应的部分内容映射到 "输出",然后在应用程序中使用它们。
JSON 提取器使用json-query 语法。要测试语法,请使用此在线工具。
XML 提取器使用XPATH 语法。
有两种方法可以做到这一点:
- 点击响应正文中的属性,将它们映射到输出中
- 使用 json-query 手动指定路径
下面是使用点击来指定提取器的方法:
如果要使用 json-query,请添加一些输出,以便将响应内容映射到 Tulip。
接下来,你需要在每个输出旁指定 "提取器",以表明你想从响应正文中存储的数据。
下面是一个使用 json-query 的示例:假设你写了一个 GET 请求,返回一个对象数组。您希望返回数组中第一个对象的name属性值。
您可以在路径字段中这样写
0.name
您还可以从响应的标题和Cookie部分存储值。
与上述部分类似,您必须在 "输出"部分指定特定的输出。然后,点击示例响应的一部分或使用 json-query 从 HTTP 响应的 JSON 中访问正确的属性。
下面是一个例子,其中名为 "csrf_token "的输出存储了标头中名为 "x-csrf-token "的属性值。
在与应用程序共享输出时,输出会被存储为对象的属性。然后,您必须将该对象存储到应用程序的变量中。有关详细信息,请参阅本指南,了解如何在应用程序中使用连接器输出
使用 RegEx 修改输出
您还可以使用 RegEx 完善响应中的文本值。为此,请在路径字段中添加以下函数之一,通过正则表达式传递值:
:regexp()
要捕获字符串中的多个子串
:regexpGroup()
示例
0.name:regexp(^N) 0.name:regexpGroup(^\w + (w+))
使用 RegEx group,您可能希望在一个较大的字符串中捕获一个组。为此,请在 RegEx 字符串末尾添加逗号,并在字符串中添加特定组的编号。
parts[0].inputs:regexpGroup(^\w\s(\w\w)\s(\w\w)\s(\w\w),2)
或者,用它来选择数组中符合规则的特定项目。例如,第一个电子邮件值以 n 开头的对象。
.[电子邮件:regexp(^N)]
我们推荐使用RegExr测试您的 RegEx。Tulip 使用 JavaScript (ECMA) RegEx 引擎。
在输出中处理对象和数组
Tulip 在 JSON 输出中支持对象和数组。下面分别介绍如何使用:
对象
要将 JSON 输出格式化为对象,首先要在 "输出"部分创建一个对象,然后指明提取器。
在上面的示例中,对象名为 "singleObj"。JSON 输出是一个对象数组,因此它会选择索引为 0 的对象。
然后,开始添加与要存储的每个键/值对相对应的输出。您可以使用**+**按钮添加键/值对。
在上面的示例中,singleObj 对象中有两个字段:
- userID,引用 userID 属性,是一个整数
- id,引用 id 属性,是一个整数
在这种情况下,提取器不需要以 "0. "开头,因为它会自动引用索引为 0 的对象。
下面是 JSON 输出的样子,以供参考:
对象数组
要返回对象数组,请在 "输出 "部分选择 "值列表",然后选择 "对象"。
您可能需要在 JSON 输出的根层级返回整个数组。
为此,请为提取器输入".":
然后,像上面的对象提取器一样,开始添加要发送到应用程序的各个属性。
这将返回数组中每个对象的 userId 和 id。您可以在测试结果的 "输出 "部分检查您的工作:
一种数据类型的数组
假设您想从返回值数组中的每个对象获取一个布尔值。
为此,请为布尔数组创建一个输出。然后,指出用于在每个对象中存储布尔值的属性。
在上面的示例中,输出名为 "completed",它包括数组中每个 "completed "属性的值,正如提取器所指出的那样。
下面是输出结果:
过去的集成
Tulip 可以与各种软件系统集成。以下是过去与 Tulip 集成的一些系统示例:
更多阅读
找到您想要的了吗?
您还可以前往community.tulip.co发布您的问题,或查看其他人是否遇到过类似问题!