跳转到主要内容
工作流 API 使你能够创建模块化的单路径 工作流,并将它们公开为可以查询的接口。 会处理你传递给工作流 API 接口的数据,并将结果返回给查询服务。 你可以使用工作流 API 从外部应用程序和服务执行 工作流。这种灵活性使你能够使用自己选择的工具来管理工作流和自动化。

视频资源

观看此短视频,了解如何设置和使用工作流 API。

创建工作流 API

通过以下步骤创建工作流 API:
  1. 在工作流画布上,右键单击端口并选择 创建 API 设置 Create API Settings option in connector context menu
    工作流 API 目前不支持某些端口。如果端口不受支持,当你尝试将该端口添加到工作流 API 时, 会显示一条错误消息。有关不能在工作流 API 中使用的端口列表,请参阅不支持的端口
  2. 创建 API 设置 页面会打开。在 方法 字段中,选择你希望工作流 API 接受请求的 HTTP 方法。选项包括 GETPOSTPUTPATCHDELETE。创建工作流 API 后,可以根据需要更改此设置。 Create API Settings page
  3. 路径 字段中,输入工作流 API 的名称。发出 API 查询时会使用此名称。
    只有当 API 名称执行不同功能时,才可以重复使用。例如,可以有一个名为 API_X12、执行 POST 功能的工作流 API,也可以有一个名为 API_X12、执行 PATCH 功能的工作流 API,但不能有两个都名为 API_x12 且都执行 POST 功能的工作流 API。
  4. 单击 创建 API。你的工作流 API 将出现在工作区中。 Flow API in the workspace
  5. 将其他端口拖到工作流 API 框中,并将它们连接在一起。也可以向工作流 API 框添加注解。
工作流 API 中的第一个端口从发出查询的实体接收输入数据,最后一个端口将输出数据发送回发出查询的实体。
完成添加和链接端口后,可以配置和测试工作流 API

不支持的端口

工作流 API 中的端口必须以一种方式连接,从而为每个输入消息产生一个输出消息。不支持基于计划或外部进程处理文件的端口。因此,工作流 API 中不允许使用以下端口:

工作流 API 示例

以下示例显示了一个配置为 POST 的工作流 API 的真实用例: Example Flow API in the workspace 此工作流 API 执行以下工作流:
  1. 数据在开始节点以加密的 X12 文件形式接收。
  2. OpenPGP_Decrypt 端口解密 X12 文件,并将其传递给 X12 端口。
  3. X12 端口将 X12 文件转换为 XML,并将转换后的 XML 文件传递给 JSON 端口。
  4. JSON 端口将 XML 文件转换为 JSON 格式,并将转换后的文件传递给 OpenPGP_Encrypt 端口,后者对 JSON 文件进行加密。
  5. 加密的 JSON 文件通过结束节点返回。
在本例中,每个端口都链接到另外两个端口,一个在前面,一个在后面。开始和结束节点会自动添加到工作流的接口。

配置和测试工作流 API

创建工作流 API 后,可以配置其设置并运行示例请求来测试配置。

配置设置

单击工作流 API 标题中的齿轮状设置图标,以打开 设置 面板。 Opening the Flow API settings pane 在此面板中,可以配置工作流 API 的行为。 Flow API settings pane 这些设置在以下章节中概述。

请求

路径 字段中,选择工作流 API 的请求类型。如果更改请求类型,请确保端口的结构和配置对于新的请求类型是正确的。 使用 说明 字段输入工作流 API 的可选描述。当你有多个工作流 API 并希望跟踪每个工作流 API 的用途时,这会很有用。

元数据头

请求中包含的所有头信息都会随消息在工作流中传递时保留下来。这些头以 API-Header- 为前缀,因此名为 MyHeader 的头将显示为 API-Header-MyHeader。在日志页面中展开消息或交易时,或查看消息详情时,可以看到这些头。也可以在端口的 交易记录 选项卡上展开交易时查看头信息。

查询参数

此部分使你能够为工作流指定查询字符串参数。如果在此处添加参数,当消息沿工作流向下传递时,它们将作为元数据头保留下来。这些头以 API-QueryParameter- 为前缀,因此 test 的查询字符串将使用 API-QueryParameter-test。这些头与元数据头显示在相同的位置。 如果你希望将某些信息作为请求的一部分传递,但该信息不是请求体的一部分,那么此功能会很有用。例如,如果想要查询数据库中特定公司的最近销售订单 ID,可以将 CompanyName 查询参数添加到 API 中,并在工作流中使用 API-QueryParameter-CompanyName 头引用它。

主体和响应

主体 部分中,选择与查询客户端和工作流 API 通信方式相对应的 类型
  • None—请求中不预期包含主体
  • Raw—任意格式的自由格式数据
  • Form data—名称-值对
  • x-www-form-urlencoded
主体响应 的文本字段中,使用下拉菜单选择主体和响应的预期数据格式(XMLJSONCustom)。

处理二进制文件

工作流 API 支持将二进制文件(PDF、JPEG 或其他二进制文件类型)作为请求体或响应体进行上传和下载。打开测试面板(参见测试工作流 API)时,工作流 API 包含:
  • 当请求体内容类型为二进制文件时,提供文件上传按钮,如下图所示 File upload button in the testing pane
  • 当响应内容类型为二进制文件时,提供文件下载按钮
如果需要 API 返回 Base64 编码的文本而不是二进制文件,需要使用 Script 端口将输出编码为 Base64,并将响应内容类型设置为类似 text/plain 的类型。

测试工作流 API

要打开工作流 API 的测试面板,请单击工作流 API 标题中的三角形图标。 Opening the Flow API testing pane 在测试面板中,左侧的框充当请求,右侧的框显示响应。每个框都会显示在设置面板中选择的预期数据格式。 Flow API testing pane 要测试工作流 API,请在左侧框中输入测试查询,然后单击 执行。如果响应与预期结果匹配,则工作流 API 已可使用。如果响应不正确,请检查工作流 API 的配置以及工作流 API 中每个端口的配置。

将工作流 API 与外部应用程序一起使用

以下步骤说明如何从外部客户端调用工作流 API。此示例展示了如何从 Postman 执行工作流 API,但也可以使用任何能够发送 REST 请求的客户端。
  1. 使用工作流设计器右下角的 选择多个端口 选项,选择要公开为 API 的工作流。然后单击 创建 API 设置。此操作会打开 创建 API 设置 对话框。
  2. 选择一个方法(例如 POST),如下所示,并为 API 指定一个有意义的名称。 Select a method in Create API Settings
  3. 单击 创建 API 创建工作流 API。
  4. 设置 面板中,配置工作流 API,以在 主体 部分定义预期的 Content-Type 值,并在 响应 部分定义所需响应的 Content-Type 值。也可以选择为请求和响应提供示例数据。
  5. 复制 请求 面板中显示的路径,如下所示。 The path in the Request pane
  6. 打开 Postman 应用程序。确保 Content-Type 下拉列表中显示相同的内容类型(在本例中为 POST)。然后,将在 中复制的路径(第 5 步)粘贴到请求 URL 字段中。将请求正文指定为应启动工作流的内容。 Copy and paste the Content-Type path in Postman
  7. 对工作流 API 进行身份验证。工作流 API 使用与 Admin API 相同的身份验证规则。此示例使用身份验证令牌头(x-cdata-authtoken)作为身份验证方法。 要使用该方法:
    1. 单击导航栏上的 设置 齿轮图标。然后,单击 添加 以打开 添加用户 对话框,或编辑现有用户。
    2. 在出现的对话框中,选中 API Access 复选框以显示身份验证令牌。(请将此令牌复制到安全位置,因为该对话框不会再次显示。如果丢失或删除身份验证令牌,则必须创建新令牌。)然后单击 保存更改
    3. 返回 Postman 应用程序并按如下方式添加工作流 API 的身份验证凭据:
      1. 单击 Headers 选项卡。
      2. x-cdata-authtoken 粘贴到 Key 字段中。
      3. 将在 中复制的身份验证令牌粘贴到 Value 字段中。
  8. 请求准备就绪后,单击 Send 按钮。应该会看到对所发送请求的响应,如下例所示: Response to the request in Postman

跨源资源共享(CORS)

可以通过导航到安全选项卡中的 Admin API 部分,为工作流 API 配置跨源资源共享(CORS)。CORS 允许基于浏览器的客户端连接到 。如果没有 CORS,由于浏览器强制执行同源策略,基于浏览器的脚本将无法连接到 。此策略限制客户端脚本和文档加载其来源之外的资源。脚本的来源由协议、主机和端口组成。