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

目录:

1. 概述编辑

1.1 版本

FineDataLink 版本
功能变动
4.0.19-

1.2 应用场景

用户需要将多应用系统的数据通过FDL打通,实现业务系统间的数据交互(交互的形式为API)。

  • 比如系统中数据取出并分析后,希望直接把分析结果数据推送到业务系统中(以 API 的形式),形成业务系统里面需要直接处理的业务数据,打通分析到业务的流程。

  • 或者希望实现简道云数据下云后将数据推送至指定API接口。

1.3 功能说明

FineDataLink 支持 API 输出,通过 API 写入满足应用集成场景。

2. 约束限制编辑

 API  输出前置节点的字段数据行数仅支持一行。

3. 操作步骤编辑

示例数据:dw_comment.xls

需要将数据表中的用户数据生成 JSON 格式后,通过 API 输出对接业务系统,将数据推送写入业务系统接口中,触发业务系统流转任务,实现数据交互。

3.1 取出数据

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

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

3.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 生成设置效果如下图所示:

3.3 设置参数输出

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

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

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

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

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

3.4 使用参数进行API 输出

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

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

SQL 语句:

select '${json1}' as test

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

配置项说明备注
请求方式

POST、PUT、DELETE

当方法选择POST、PUT、DELETE时,需要包含Body;
Body目前支持raw下的TEXT、JSON、XML

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

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

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

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

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

3.5 设置循环容器

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

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

3.6 运行任务并查看效果

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

企业微信截图_16776535206288.png

4. 注意事项编辑

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

支持用户在Headers内新增一个参数、参数名为SSL-certificate-verification,当客户配置此参数时:

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

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