1. 概述
在现实的业务中,有很多数据需要通过 API 接口调用使用。
因此本文为用户介绍在 FineDataLink 中使用 API 取数并进行数据解析处理,最终将数据写入指定数据库的方案。
注:若需要使用 FineDataLink 发布API ,或者将数据推送到 API 接口,详情参见:API专题
2. 索引
序号 | 应用场景 | 方案说明 | 参考文档 | |||
---|---|---|---|---|---|---|
1 | API 入门 | 如何查看 API 文档、如何在 FineDataLink 中使用 API | API入门 | |||
2 | 直接从 API 接口取数,且返回数据是简单的 JSON 格式 | 直接使用数据同步-API 取数并同步至数据库即可 | 数据同步-API | |||
3 | 直接从 API 接口取数,且返回数据为 JSON 格式 |
| ||||
4 | 直接从 API 接口取数,且返回数据为 XML 格式 | 使用数据转换中的 API 取数,并通过 XML 解析 将 XML 数据解析成行列数据格式,并同步至数据库 | XML 解析 | |||
5 | 可读取 API 数据,并输出为参数 | |||||
6 | 将 Webservice 接口数据取出并进行后续的数据处理 | webservice调用介绍 | API输入-Webservice | |||
7 | API调用并存入数据库实战 | |||||
接口取数 从企微自建应用中使用 读取成员 接口,获取部门所有人员信息 |
| API取数-获取企业微信人员信息 | ||||
接口取数 1、参数赋值+循环容器 2、按日期分表,每天保存当天数据:每天数据过大,希望能每天创建一个新的数据表,保存该天数据 3、API取数-钉钉获取部门列表:接口只能获取当前部门的下一级部门基础信息,不支持获取当前部门下所有层级子部门。因此需要依次根据父部门ID循环获取子部门ID 4、API取数-使用通讯录同步获取企业微信userid和部门:使用的接口:获取成员ID列表 5、PI数据库API循环取数:讲述如何从 PI 数据库取数 | ||||||
参数进行分组后再从接口循环取数 接口限制一次取数不能超过100,但实际场景中是超过100的 | 以获取企微月报打卡数据为例:
| 参数进行分组后再从接口循环取数 | ||||
8 | 加密API取数实战 | |||||
接口取数+MD5加密 使用MD5加密获取签名sign,从 API 接口取数 | 参数使用MD5加密后从API取数 | |||||
接口取数、接口参数做的操作:
| 使用FDL接口形式实现阿里云服务器数据监听 | |||||
9 | 分页取数API实战 | |||||
分页取数:按页数取数,其中接口中存在参数:
| 4.1.3 及之后版本:
4.1.3 之前版本:
| API取数-按页数取数 | ||||
分页取数,接口返回值中没有总页数 total_pages,需要手动计算 请求参数:
返回值参数:
|
| 分页取数-计算总页数并按页取数 | ||||
分页取数,接口中没有页数相关的参数,但有:
|
循环执行 2-4 步骤 | 分页取数-限制取数量且无页数参数 | ||||
分页取数:按偏移量取数,接口参数如下:
| 以金蝶云星空销售报价单接口为例:
| |||||
分页取数:按偏移量取数,接口参数如下:
返回参数: Result.RowCount:返回所取数据的总行数 | 4.1.3 及之后版本,可参考:分页取数-按偏移量取数 实现 4.1.3 之前版本,可参考:API取数-以起始行数作为参数 方案实现 | |||||
使用分页参数进行分页取数: Body 参数中有分页参数 scrollid: 接口文档详情参见:根据时间窗滚动查询变动的员工与单条任职信息 | API取数-北森接口获取员工任职信息 | |||||
分页取数+游标 Body 参数:
返回参数:
| 分页取数-分页方式为游标 | |||||
分页取数+加密 分页取数,调用接口时需要携带签名参数 sign,只有当 sign 值合法时请求才会被接受 |
| API取数-SHA2加密身份验证&按页数取数 | ||||
嵌套循环取数 循环容器根据参数A循环取数 循环容器内,分页取数 | 以 慧策-WMS库存全量查询接口 取数为例:
| 嵌套循环取数 | ||||
10 | 使用接口进行条件判断 | 定时任务仅在工作日运行 | 仅在工作日执行定时任务 | |||
11 | 用户想使用「参数赋值」+「循环容器」节点,分段取出 API 接口中的数据,并将数据解析;但当某个参数从 API 接口中取的数据,经解析后,为空时(没有任何内容),将终止循环,可参考右侧文档解决这个问题 | 取出数据为空导致循环终止解决方案 | ||||
12 | 如何调用 FineDataLink 定时任务接口 | 按需触发\执行定时任务,以提高数据时效性 | 调用定时任务相关接口说明 |
3. 拓展阅读
1)如果需将加工、融合后的数据封装并发布为规范化 API 接口数据,供外部系统调用,实现数据价值输出及共享开放。详情参见:数据服务概述
最佳实践请参考:使用数据服务对数据进行分发管控
2)如果需要将多应用系统的数据通过 FDL 打通,实现业务系统间的数据交互(交互的形式为API)。比如系统中数据取出并分析后,希望直接把分析结果数据推送到业务系统中(以 API 的形式),形成业务系统里面需要直接处理的业务数据,打通分析到业务的流程。详情参见:API输出逻辑说明
最佳实践请参考:活动日程信息更新至企业微信日程、新增/修改宜搭表单数据