- 打印
了解如何构建 HTTP 连接器输出。
概述
通过 Tulip 中的连接器函数编辑器,您可以对连接器函数返回的数据进行结构化处理,以便在应用程序中使用这些数据。本文将介绍连接器函数 Output 的格式化基础知识:
- 连接器 "输出 "的概念
- 格式化输出的可用工具
- 各种常见的输出格式
什么是输出?
输出用于定义和组织连接器函数的返回结果。您可以通过它从更大的 HTTP 返回正文中提取对应用程序重要的信息。
如何构建输出
在连接器函数编辑器的左下角找到输出部分。
要开始添加输出,请单击添加函数输出。
好的做法是为输出命名一个可识别的标签。这些名称会在应用程序中显示为变量,因此能够区分它们非常重要。
要了解 HTTP 请求的结果,首先要了解测试结果中返回的对象的形状。下图说明了结果是如何分成对象和数组两部分的。
:::(Info) (注)如果您以前没有使用过 JSON,可能会对对象和数组这两种关键数据类型感到陌生。数组是相同类型值的列表。例如,[1,2,3,5] 或 [橡木、榆木、桤木、山核桃木]。数组中的值包含在方括号 [ ] 中。对象是一种用于保存键:值对的数据类型。对象中的键:值对可以有多种不同类型,包括数组和嵌套对象。对象用大括号 { } 包含:
有关对象和数组的更多信息,请查阅《了解连接器函数输出中的数组和对象》。
点符号
对于 HTTP 连接器,输出使用一种名为 Dot Notation 的格式。点符号允许访问对象中的值。圆点符号对于从庞大的 JSON 响应正文中只提取所需内容非常有用,它还能让你在格式化 HTTP 连接器函数时更加灵活。简单地说:它是一种基于相互嵌套的值的结构化格式。
下面让我们举例说明连接器输出中如何使用点符号。
下面的示例对象名为 "employees",它包含一个对象数组,其中有每位员工的详细信息。如果我们只想访问每位员工的头衔,我们可以使用以下语法: employees.title。我们使用 Dot 访问与我们感兴趣的键相关的值。假设我们只想获取第一个结果。我们可以在主对象名称 "employees "和我们感兴趣的值 "title "之间添加索引位置。语法如下: employees.0.title。对于更复杂的对象,可能需要进一步深入到对象中才能获取所需的信息。
我们再举一个例子。在这种情况下,假设我们想创建一个连接器函数,用于提取与知识库中文章相关的信息。我们的连接器会返回以下名为 "data "的 JSON 对象,其中包含与特定文章相关的数据:
如果我们只想提取文章的 ID、标题、版本以及是否隐藏。我们需要使用输出来指定。让我们演示一下编辑器输出部分中的点符号是如何显示的:
要提取 "id "和 "title "等结果,我们需要指定这些结果在 JSON 中的位置。输出的主体是 "data",对应于 "测试结果"部分的第一个下拉菜单。data "下拉菜单中的每个结果都嵌套在该对象中。在 "输出"部分,句号/点表示深入 "数据 "对象一层。
:::(Info) (注意)不管圆点是放在正文中,还是放在单个属性前面,都没有关系,只要 JSON 的每一层之间都有一个圆点就可以了:
当我们点击 "测试结果"部分的 "输出"选项卡时,"输出 "会过滤掉其他数据,这样我们就只能看到我们关心的信息。
另一种写输出的方法是单行。这样就能在一次查询中显示完整路径。
为了方便写入输出路径,你也可以点击一行数据,将其添加为新的输出。
有关使用点符号的更多信息,请查看此资源:如何使用点符号访问 JSON 对象中的信息。
输出结果
构造输出结果有多种方法,但如何构造完全取决于你想在应用程序中使用数据做些什么。在开始构建输出结果之前,请考虑一下您的最终目标。你想在单个变量中显示多种数据类型吗?还是在一个数组中包含相同的数据类型,只需解析相关信息即可?
下面的示例都基于相同的连接器函数,每个示例中测试结果的主体都是一样的。然而,输出结果却因结构不同而各异。
下面的示例显示了连接器如何输出 JSON 路径 data.hits.slug。按照这种输出结构,连接器会返回一个包含知识库文章所有 URL slug 的大型数组。在我们的应用程序中,可以通过数组变量访问连接器返回的内容。
我们可以将输出结构化为对象列表,并从结果中提取单个数据类型,从而创建多个数据对象,这些对象可以在应用程序中单独显示。
对象列表是包含多个嵌套数据类型的对象。点击输出类型并切换右角的列表开关,即可使用对象列表。
有了对象列表,就可以在应用程序中轻松地将不同的数据类型用作单独的数据块。
回到上面的例子,让我们把输出路径data.hits.slug设为一个列表。你可以在下面的结果中看到,Tulip 将此连接器的返回值结构化为一个 slug 数组,每个索引位置都列在每个值的旁边。
有了对输出的这种理解,现在就可以将输出映射到自己的连接器函数中,并优化连接器返回的结果!
更多阅读
找到您想要的了吗?
您还可以前往community.tulip.co发布您的问题,或查看其他人是否遇到过类似问题!