历史版本14 :API输出典型示例 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

API输出逻辑说明 已经介绍了API输出的基本功能,用户需要将多应用系统的数据通过FDL打通,实现业务系统间的数据交互(交互的形式为API),就可以通过 API 写入满足应用集成场景。

本文以一个具体示例为你做介绍,将数据表中的用户数据生成 JSON 格式后,通过 API 输出对接业务系统,将数据推送写入业务系统接口中,触发业务系统流转任务,实现数据交互。

操作流程:

2. 操作步骤编辑

示例数据:dw_comment.xls

2.1 取出数据

使用「数据转换」节点,进入编辑界面后,拖入「DB表输入」算子,SQL 语句取出需要进行 API 输出的数据,如下图所示:

点击预览数据,如下图所示:

2.2 生成JSON格式数据

由于需要API写入的接口数据需要 JSON 格式,所以需要将原先的数据库表形式数据转换成 JSON 格式。

JSON 样式如下:

{
"fields": {
"summary": "文档很赞",
"components": {
"name": [
"FR10"
]
},
"customfield_14904": "https://help.fanruan.com/finereport10.0/doc-view-2463.html",
"description": "根据参数动态显示地图区域"
}
}

新增 JSON 生成算子,设置输出 JSON 字段名,并进行 JSON 配置。JSON配置详情参见:JSON生成

JSON 嵌套可以使用「子对象」和「子数组」实现,然后选择对应的字段值,如下图所示:

同时可以修改字段类型,如下图所示:

最终 JSON 生成设置效果如下图所示:

2.3 设置参数输出

由于 API  输出前置节点的字段数据行数需要为一行,因此需要使用「循环容器」,将每条 JSON 生成的数据依次写入接口。

这里首先将生成的 JSON 数据作为参数输出,便于后续使用循环容器进行 API 输出。

设置参数名为「json1」,指定行列,如下图所示:

为了便于后续调用参数值预览调试数据,可以复制一个生成的 JSON 作为默认值,如下图所示:

并将其粘贴至默认值中,如下图所示:

2.4 使用参数进行API 输出

拖入循环容器节点,并将「数据转换」节点拖入至循环容器中,与之前的数据转换节点相连,如下图所示:

进入数据转换编辑界面,使用 SparkSQL 算子作为输入源,取出之前生成的 JSON 数据,便于后续的API 输出,如下图所示:

SQL 语句:

select '${json1}' as test

新增「API 输出」算子,设置需要将 JSON 写入的 API 配置,body 中可以选择 JSON 格式,并将 SparkSQL 中取出的 JSON-test 作为 body,如下图所示:

若 API 输出后的接口返回值需要继续使用,可以在返回值处理中勾选「返回响应值至参数」将返回值设置为参数,供后续使用。

设置参数名称并添加默认值便于进行调试。

比如示例接口如果执行成功,会返回{"code":200,"message":"success","self":"http://project.fanruan.com:6023/dataway/service/rest/api/2/issue/804566"}

将其设置为参数,如下图所示:

可在后续节点调用该参数,如下图所示:

  • API输出执行状态与 HTTP 响应状态绑定:运行时和预览时只有当响应状态码为2xx时,执行成功,否则报错,错误信息内包含具体的状态码和响应body信息。

  • 「返回响应值至参数」选项为复选框,默认不勾选,勾选后用户可以设定参数名与默认值,其中默认值为用户自行从API接口文档内复制粘贴的多行文本。

2.5 设置循环容器

在设置好API输出后,需要进行循环容器的配置,来确保生成的JSON 数据能作为参数一条条接入 API 。

选择循环容器,设置遍历对象为参数「json1」,如下图所示:

2.6 运行任务并查看效果

保存并运行任务,任务执行成功后,会通过API输出推送数据至业务系统中,例如生成任务,如下图所示:

企业微信截图_16776535206288.png

3. 注意事项编辑

API输出支持关闭SSL证书验证:

当 API 使用了https 可以取消证书有效性验证,用户在Headers内新增一个参数、参数名为SSL-certificate-verification,当客户配置此参数时:

当SSL-certificate-verification值为false时,FDL在调用API不进行证书有效性验证(当然仅当目标端的API配置了https时,才需要进行证书有效性验证)

注:在实际传给服务端的API的Headers内去除此参数,此参数仅应用于FDL内部;