使用 JSON 分析器转换 HTTP 调用的响应,以便随后在流程中使用
IBM® App Connect 包含一个 JSON 分析器,可用于解析 HTTP invoke 操作或流程中其他应用程序的输出。 如果将数据作为 JSON 字符串返回,那么不会将该字符串中编码的键/值对识别为单独的实体。 因此,必须使用 JSON 解析器将字符串转换为 JSON 对象,以使数据可供后续使用。
方案分析
你在虚构的选举委员会办公室工作。 为准备即将举行的选举,贵司在选举委员会网站上提供表格,以便居民可以在网上登记投票。 当每个选民注册时,您希望向他们发送一封确认收据的电子邮件。 您还要向他们发送有关当地候选人的详细信息和 URL 参考资料,他们可以利用这些资料获取最新的选举信息。

在 App Connect中创建此流之前,需要以下内容。
- Wufoo 和 Gmail的免费帐户或业务帐户。
- 选民可用于提供其姓名和地址详细信息的在线表单。 对于本教程中的场景,假定表单作为嵌入式 Wufoo 表单提供在选举委员会 Web 站点上。
- 通过公开的 HTTP 端点访问网络应用程序接口,返回与选民邮编相关的选举数据。
连接到应用程序
如果 App Connect 尚未连接到 Wufoo 和 Gmail 帐户,那么现在可以在 目录 中或者在将应用程序添加到流时连接这些帐户。
- 对于 Wufoo,您需要 Wufoo 帐户的 API 密钥和子域。 更多信息,请参阅如何使用 IBM App Connect 与 Wufoo。
- 对于 Gmail,您需要应用程序客户机标识和客户机密钥,以及用于 OAuth 认证,访问令牌和 Gmail 帐户的刷新令牌。 更多信息,请参阅如何在 Gmail 中使用 IBM App Connect。
在本教程中,API 密钥作为参数包含在为调用 API 而构建的 URL 中。 启用 API 密钥验证的另一种方法是在 HTTP 账户连接字段中添加有关 API 密钥参数、值和位置的详细信息。 更多信息,请参阅如何使用 IBM App Connect 与 HTTP。
创建流程
以下步骤描述了如何创建名称为 Send
election data to registered voters的事件驱动的流。 流使用 Wufoo 作为具有 新表单条目 事件的源应用程序。 在此场景中,选民提交表单以触发流。 (更多信息,请参阅创建事件驱动流程 )
App Connect 会自动保存更改。 如果您在任何时候离开该流,那么将保存该流,并且您可以稍后返回。
- 在 App Connect Designer 面板上,单击。
- 输入用于标识流用途的名称,例如 Send election data to registered voters。
- 选择 Wufoo 作为第一个应用程序 (源) ,然后选择 新建表单条目 作为触发流的事件。
- 对于 表单,选择选民提交的表单,例如 Electoral Commission of Utopia: Registration。
图 2。 Wufoo 显示所选表单的新表单输入事件 
- 选择 HTTP 作为第一个目标应用程序,然后单击 Invoke method 作为触发流程时完成的操作。 在这种情况下, HTTP 连接器使用 GET 方法,根据提交表单中的邮政编码在 HTTP 端点上查找选举数据。
- 在创建流之前,您已通过启用 API 并生成 API 密钥来配置对此端点的访问权。 因此,您需要指定 URL ,并附加 API 密钥、选民地址和选举标识符作为查询参数。
- 您还可以使用 请求头 字段来指示响应的内容类型必须为 JSON。 (将 HTTP 节点添加到流后,通过单击 “请求标头” 标题的 “编辑映射” 来显示 “请求标头” 字段。)
图 3。 配置 HTTP 调用方法操作 
- 此场景中的最终操作是发送电子邮件。 电子邮件需要包括从 HTTP 端点返回给提交表单的投票人的数据。 但是,由于响应将作为 JSON 文本字符串返回,因此需要将此字符串解析为 JSON 对象。 然后,可以映射 Gmail 操作中的字段。 您可以将 JSON 解析器节点添加到流以执行此解析。
- 单击 添加节点 (+) ,然后从 工具箱 选项卡中单击 JSON 解析器。
- 单击 JSON 输入字段,单击插入映射
,展开 HTTP / 调用方法 ,然后选择响应体。 该映射表示要解析前一个 HTTP GET 操作返回的响应体。图 4: 配置 JSON 输入字段,映射 HTTP Invoke 响应正文
现在,您可以使用 输出模式 字段来对 JSON 模式的结构进行建模。 您需要响应中的一些样本 JSON 内容。 您可以使用与 HTTP invoke 操作中指定的类似 URL ,通过浏览器调用 API 来获取这些内容。 例如:https://API_URL?key=API_KEY&address=POSTCODE&electionId=ID_VALUE - 展开 输出模式 部分,并将样本响应粘贴到 示例 JSON 字段中。 此字段最多可接受 16,000 个字符,因此您可能需要先缩短样本 JSON 内容,然后再将其粘贴。 例如,只能添加数组或列表的一个条目。
图 5。 配置输出模式 
- 单击 生成模式 以将样本 JSON 字符串转换为 JSON 对象。 您可以在 JSON 模式 字段中查看结果。
图 6。 从示例 JSON 生成的 JSON 模式 
- 选择 Gmail 作为最终目标应用程序。 展开 电子邮件,然后选择 发送电子邮件 作为操作。 将收件人的电子邮件地址映射到在 Wufoo 表单中输入的电子邮件地址。 指定电子邮件的主题,如 "
选民登记确认
"。 使用 JSON 解析器生成的文本字符串和已解析字段的组合来构造电子邮件主体。图 7。 已完成的 Gmail 字段示例 
要测试流,请单击 启动流,然后单击 仪表板 以退出流。 "仪表板" 现在包含流的磁贴。 您可以使用此磁贴来停止测试流以及对其进行编辑,导出或删除。图 8。 "仪表板" 上的 "流" 图标,显示该流正在运行并且正在等待事件 

结果
当有人使用在线表格登记投票时,他们会收到一封确认电子邮件,其中包含一些选民信息。