1. 概述
1.1 版本
FineDataLink 版本 | 功能变动 |
---|---|
4.0.19 | 新增「API输出」算子,可将数据写入到 API 接口中 |
4.0.23 | API 配置中的 body 请求内容支持使用 Content-Type 为 form-data 和 x-www-form-urlencoded 的请求格式 这两种请求方式下,支持添加多行,每行选择一个字段,使用字段名作为键名、使用字段值作为键值 |
4.1.1 |
|
4.1.3 | 若「API输出」算子中 body 的请求格式为 raw,前置节点的字段数据行数可以为多行(之前版本前置节点的字段数据行数只能为单行) |
1.2 应用场景
用户需要将多应用系统的数据通过 FDL 打通,实现业务系统间的数据交互(交互的形式为 API)。
比如系统中数据取出并分析后,希望直接把分析结果数据推送到业务系统中(以 API 的形式),形成业务系统里面需要直接处理的业务数据,打通分析到业务的流程。
或者希望实现简道云数据下云后将数据推送至指定 API 接口。
1.3 功能简介
FineDataLink 支持 API 输出,通过 API 写入满足应用集成场景。
具体效果:可到 新增/修改宜搭表单数据 中查看。
2. 使用限制
1)「API输出」算子支持 POST、PUT、PATCH、DELETE 请求方式。
2)4.1.3 版本之前:
若「API输出」算子中 body 的请求格式为 raw,前置节点的字段数据行数仅支持一行,需要使用 循环容器 来确保生成的 JSON 或者 XML 数据能作为参数一条条接入 API;具体示例请参见:历史版本
4.1.3 及之后版本:
1)若「API输出」算子中 body 的请求格式为 raw,前置节点的字段数据行数可以为多行;具体示例请参见:API输出典型示例
2)前置节点的数据行数为多行时 FDL 的执行逻辑:调用一次 API 传入一行数据,调用 API 的次数等于前置节点的数据行数。
3. 使用流程
3.1 数据准备
示例接口:新增或更新表单实例 接口
1)若想将数据输出到 API 接口中,需要先了解调用这个接口需要的内容。
2)调用接口前,需要准备调用该接口的内容,例如 Header 参数、body 内容。
一般情况下,需要将待写入的数据生成参数,使用「JSON生成」算子处理成接口需要的 body 格式;具体示例请参见:新增/修改宜搭表单数据
4.1.3 版本之前,若「API输出」算子中 body 的请求格式为 raw&前置节点的字段行数为多行,需要使用 循环容器 来确保生成的 JSON 或者 XML 数据能作为参数一条条接入 API;具体示例请参见:历史版本
3.2 数据写入 API 接口
写入 API 接口界面如下图所示:
3.2.1 请求方式
支持 POST、PUT、PATCH、DELETE 请求方式。
3.2.2 Headers 请求头&Body
1)自动添加 Content-Type 参数,参数值可选择:application/x-www-form-urlencoded、application/json、application/xml、multipart/form-data、text/xml、text/plain。
2)Content-Type 参数值与 Body 中内容格式双向联动。如下表所示:
Body一级选项 | Body二级选项 | Content-Type默认值 | 说明 |
---|---|---|---|
form-data | multipart/form-data | 允许添加多行、每行可以选择一个字段,使用字段名作为键名、使用字段值作为键值 | |
x-www-form-urlencoded | application/x-www-form-urlencoded | 允许添加多行、每行可以选择一个字段,使用字段名作为键名、使用字段值作为键值 | |
raw | JSON | application/json | 支持选择单个字段选择 |
XML | application/xml | 支持选择单个字段选择 | |
TEXT | text/plain | 支持选择单个字段选择 |
3)允许用户在 Headers 内对 Content-Type 进行自定义设置,即 Content-Type 的下拉框支持输入非下拉列表值。如下图所示:
如果输入的 Content-Type 不在联动列表内,则 Body 内格式较改变 Content-Type 前不发生变化。
如果用户输入不在列表内的 Content-Type 后,再修改 Body 的格式,则自动覆盖 Headers 内的 Content-Type 为联动值。
3.2.3 TLS/SSL
1)若用户有自签名证书,可开启自签名证书。并手动上传证书并输入密码。
2)若用户需要绕过证书验证,支持关闭 SSL 证书验证。详情请参见本文第四章内容。
3.2.4 返回值处理
默认不开启;勾选「返回API响应值至参数」按钮后,可设置参数名和默认值,将「API 输出」算子的返回值输出为参数,以判断接口调用情况。
参数值:类似于「参数赋值」节点的默认值,若后接节点使用该参数,在后接节点中预览结果时使用该默认值;实际参数值为 API 调用后的返回结果。
4.1.3 及之后版本,若「API输出」算子中 body 的请求格式为 raw,前置节点的字段数据行数为多行&勾选「返回API响应值至参数」按钮:API 每次被调用的结果汇总到参数值中(API 被调用的次数与前置节点的数据行数相同)。
API 被调用两次的参数值示例:
{"code":200,"detail":"操作成功","ok":{"code":200,"message":"success","self":"http://project.fanruan.com:6023/dataway/service/rest/api/2/issue/804566"},"data":[]},
{"code":200,"detail":"操作成功","ok":{"code":200,"message":"success","self":"http://project.fanruan.com:6023/dataway/service/rest/api/2/issue/804566"},"data":[]}
3.2.5 调用频率控制
在一次执行实例中控制该 API 的调用频率;控制频率:秒/分钟/小时/天。
API 调用次数超出设置的调用频率控制次数后,会等待。比如设置「API 调用频率控制」为一分钟三次,在一次执行实例中 API 接口需要被调用 6 次,会在第一分钟的前几秒调用 3 次 API,等第二分钟到来后再调用 3 次。
4. 关闭 SSL 证书验证
数据输出到 API 时,支持关闭 SSL 证书验证。
当 API 使用了https 可以取消证书有效性验证,用户在 Headers 内新增一个参数,参数名为SSL-certificate-verification,当 SSL-certificate-verification值为 false 时,FDL 在调用 API 不进行证书有效性验证(仅当目标端的 API 配置了 https 时,才需要进行证书有效性验证)。
注:在实际传给服务端 API 的 Headers 内去除此参数,此参数仅应用于 FDL 内部。
5. 应用示例
说明 | 文档 |
---|---|
将数据表中的用户数据生成 JSON 格式后,通过 API 输出对接业务系统,将数据推送写入业务系统接口中,触发业务系统流转任务,实现数据交互 | API输出典型示例 |
用户有些日程信息是通过 FR 填报到数据库或者保存到简道云中,原始信息可能会被其他部门进行增删改操作,因此用户希望将日程数据在企业微信中记录,方便在活动开始前对相关的同学做到自动提醒 | 活动日程信息更新至企业微信日程 |
用户希望根据业务数据库中的数据,更新、新增宜搭表单的数据 | 新增/修改宜搭表单数据 |