1. 概述
1.1 版本
FineDataLink 版本 | 功能变动 |
---|---|
4.0.19 | - |
4.0.23 | API 配置中的 body 请求内容支持使用 Content-Type 为 form-data 和 x-www-form-urlencoded 请求格式,可以添加多行,每行选择一个字段,使用字段名作为键名、使用字段值作为键值,详情参见本文第四章 |
4.1.1 |
|
4.1.3 | 当前置节点的数据流有多行时,API 输出支持选择其中一行数据流进行配置,无需调整前置节点的数据流行数 当 API 输出遍历多行数据流循环调用时,将每一次调用的响应体都添加到输出参数的数组中 |
1.2 应用场景
用户需要将多应用系统的数据通过 FDL 打通,实现业务系统间的数据交互(交互的形式为 API)。
比如系统中数据取出并分析后,希望直接把分析结果数据推送到业务系统中(以 API 的形式),形成业务系统里面需要直接处理的业务数据,打通分析到业务的流程。
或者希望实现简道云数据下云后将数据推送至指定 API 接口。
1.3 功能简介
FineDataLink 支持 API 输出,通过 API 写入满足应用集成场景。
具体效果:可到 活动日程信息更新至企业微信日程 中查看。
2. 使用限制
API输出支持 POST、PUT、PATCH、DELETE 请求方式。
注:GET 方法不需要前置输入字段,如果需要可以使用输入算子去实现。
3. 使用流程
3.1 数据准备
示例接口:新增或更新表单实例 接口
若想将数据输出到 API 接口中,需要先了解调用这个接口需要的内容。
调用接口前,需要准备调用该接口的内容,例如 Header 参数、body 内容;一般情况下,需要将待写入的数据生成参数,使用「JSON生成」算子处理成接口需要的 body 格式。
3.2 数据写入 API 接口
写入 API 接口界面如下图所示:
维度 | 说明 | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
API配置 | 请求方式 | API输出支持 POST、PUT、PATCH、DELETE 请求方式。 区别于 PUT 的更新资源,PATCH 方法用来更新局部资源,例如有一个 UserInfo ,里面有userId, userName, userGender等10个字段。因为需求,在某个特别的页面里只能修改 userName ,这时候的更新可以使用 PATCH 只传一个 userName 到指定资源去,表示该请求是一个局部更新,后端仅更新接收到的字段。 | |||||||||||||||||||||
Headers 请求头中的Content-Type |
| ||||||||||||||||||||||
TLS/SSL | 若用户有自签名证书,可开启自签名证书。并手动上传证书并输入密码。 若用户需要绕过证书验证,可以查看下文「其他说明」关闭 SSL 证书验证。 | ||||||||||||||||||||||
返回值处理 | API输出的返回值处理 |
运行时和预览时只有当响应状态码为2xx时,执行成功,否则报错,错误信息内包含具体的状态码和响应body信息,具体见本文第六节。
| |||||||||||||||||||||
调用频率控制 | 当用户设置当前API调用的频率限制时,可在一次执行实例中控制该API的调用频率。 | 控制频率:秒/分钟/小时/天 例如控制调用频率为 1 分钟一次,则任务执行后可以看到日志,API 一分钟调用一次,如下图所示: | |||||||||||||||||||||
其他说明 | - | API输出支持关闭SSL证书验证: 支持用户在Headers内新增一个参数、参数名为SSL-certificate-verification,当客户配置此参数时: 当SSL-certificate-verification值为false时,FDL在调用API不进行证书有效性验证(当然仅当目标端的API配置了https时,才需要进行证书有效性验证) 注:在实际传给服务端的API的Headers内去除此参数,此参数仅应用于FDL内部; |
4. 运行日志说明
日志分类 | 报错内容(不包含时间部分) |
---|---|
任务预览&选择节点时报错 | com.fr.dp.exception.FineDPException: API输出失败 -API输出的源字段不能为空 (后端报错信息及堆栈) |
com.fr.dp.exception.FineDPException: 未接入前置节点 - previous node of [API输出] is absent | |
com.fr.dp.exception.FineDPException: JSON格式化失败 - JSON格式非法 (后端报错信息及堆栈) | |
com.fr.dp.exception.FineDPException: XML格式化失败 - XML格式非法 (后端报错信息及堆栈) | |
com.fr.dp.exception.FineDPException:API连接超时 - 网络超时(后端报错信息及堆栈) | |
com.fr.dp.exception.FineDPException:API连接响应错误 - API响应错误(API响应状态码、API响应body(前10行)、后端报错信息及堆栈) | |
任务构建时报错 | 任务构建失败 异常节点:【数据转换】 [API输出]: 源字段为空 |
任务构建失败 异常节点:【数据转换】 [API输出]:未接入前置节点 | |
任务构建失败 异常节点:【数据转换】 [API输出]:JSON格式非法 | |
任务构建失败 异常节点:【数据转换】 [API输出]:XML格式非法 | |
任务运行时报错 | [数据转换] - 执行失败 [API输出]:API连接超时 - (后端报错信息) |
[数据转换] - 执行失败 [API输出]:API连接响应错误 - API响应错误(API响应状态码、API响应body(前10行)、后端报错信息及堆栈) |
5. 注意事项
数据输出到 API 时,支持关闭 SSL 证书验证。
当 API 使用了https 可以取消证书有效性验证,用户在 Headers 内新增一个参数,参数名为SSL-certificate-verification,当 SSL-certificate-verification值为 false 时,FDL 在调用 API 不进行证书有效性验证(仅当目标端的 API 配置了 https 时,才需要进行证书有效性验证)。
注:在实际传给服务端 API 的 Headers 内去除此参数,此参数仅应用于 FDL 内部。
6. 应用示例
说明 | 文档 |
---|---|
将数据表中的用户数据生成 JSON 格式后,通过 API 输出对接业务系统,将数据推送写入业务系统接口中,触发业务系统流转任务,实现数据交互 | API输出典型示例 |
用户有些日程信息是通过 FR 填报到数据库或者保存到简道云中,原始信息可能会被其他部门进行增删改操作,因此用户希望将日程数据在企业微信中记录,方便在活动开始前对相关的同学做到自动提醒 | 活动日程信息更新至企业微信日程 |
用户希望根据业务数据库中的数据,更新、新增宜搭表单的数据 | 新增/修改宜搭表单数据 |