历史版本28 :API取数概述 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

在现实的业务中,有很多数据需要通过 API 接口调用使用。

因此本文为用户介绍在 FineDataLink 中使用 API 取数并进行数据解析处理,最终将数据写入指定数据库的方案。

注:若需要使用 FineDataLink 发布API ,或者将数据推送到 API 接口,详情参见:API专题

2. 索引编辑

关于 API  的数据开发,有以下几种常见的情况:

序号场景
方案功能组合示例
1API入门如何看 API 文档,以及如何在 FineDataLink 中使用 API/API入门
2直接从 API 接口取数,且数据为非 JSON 格式直接使用数据同步-API 取数并同步至数据库即可数据同步数据同步-API
3直接从 API 接口取数,且数据为 JSON 格式使用数据转换取数并通过JSON解析将 JSON数据解析成常用的数据格式,并同步至数据库数据转换「API输入+JSON解析+DB表输出」JSON解析
4直接从 API 接口取数,且数据为 XML 格式使用数据转换中的API 取数 并通过 XML 解析将 XML 数据解析成行列数据格式,并同步至数据库数据转换「API输入+XML解析+DB表输出」XML 解析
5需要先获取 Token 或者某个指定数据,然后再根据 Token 从指定 API 中取出数据首先通过参数赋值将需要获取的 Token或者数据取出并设置为参数,使用数据转换或者数据同步引用上一节点设置的参数取出需要数据并同步至数据库。参数赋值、数据转换(API输入+JSON解析+DB表输出)API取数-获取企业微信人员信息
6

分批取出接口中的数据

接口文档中包含数据页数、数据条数等信息

从接口中获取总页数作为参数,也就是需要执行的次数;

使用循环容器和内置参数 loopTimes,首次执行页码数为 1 ,然后递增执行取出每一页的数据。

参数赋值、循环容器、数据转换(API输入+JSON解析+DB表输出)API取数-按页数取数
7需要通过拼接获取鉴权签名参数,然后在接口中取出数据使用 SparkSQL 拼接鉴权签名参数,然后取出总页数、配合循环容器和内置参数 loopTimes,一页页取出数据。参数赋值、数据转换(SparkSQL、API输入、JSON解析、DB表输出)、循环容器API取数-加密身份验证&按页数取数
8

需要取出数据的API

接口文档中没有页数相关的参数,但是接口中有 limit 参数限制接口取数量

获取当前数据表中最大 id 值,每次从最大 id 开始取出100条数据,循环多次,直至取完所有的数据。参数赋值、数据转换(API输入、JSON解析、DB表输出)、循环容器API取数-限制取数量且无页数参数
9公司内部使用企业微信,行政部门想要统计每月员工的打卡数据,将这些数据取出至指定数据库使用。
  • 将「通讯录同步」的企业微信人员 userid 和 department 信息从接口中取出,使用 获取成员ID列表 接口直接获取用户的 userid 和 department 数据。

  • 然后调用 获取打卡月报数据 接口,获取指定员工指定时间段内的打卡月报统计数据。

参数赋值、SparkSQL、参数输出、循环容器API取数-获取当月企微月报打卡数据
10公司内部使用金蝶云星空进行供应链管理。

希望将 销售报价单的单据查询接口 中的数据取出,以便进行数据分析。

  • 获取一段时间(开始时间和结束时间)作为日期参数,取出该段时间内的数据,后续通过定时调度任务进行追加。

  • 如何取出该时间段数据:先清空日期区间内的数据,然后通过循环容器循环次数来确定每次取数的开始行数,直到结果数据行数无法整除每次区数量,再跳出循环。

参数赋值、SQL脚本、循环容器、条件分支API取数-金蝶云星空销售报价单
11通过MD5加密获取签名 sign,然后从易流云接口获取用户车辆最新位置信息使用 SparkSQL中的 MD5 加密函数获取签名,然后取出接口数据。SparkSQL、参数输出API取数-易流云MD5加密
12遇到接口中需要使用业务参数,并且数据量大需要分页取出,每个业务参数都有不同的页码数

从数据库或者接口中获取库存编码和仓库编码的所有编码值,并使用循环容器从 API 中取出所有的编码值对应的数据总条数 total;

使用公式计算每个编码值按照指定的page_size 得到的总页码数;

使用 SaprkSQL 获取所有编码值对应的页码列表page_no,方便后续作为遍历参数遍历进行 API 取数;

将page_size、page_no、两个编码字段作为请求参数,在 API 中进行取数,设置为遍历这些参数,取出所有的数据。

参数赋值、SQL脚本、循环容器、参数输出API取数-慧策接口获取库存全量数据
13FR 日报表中直接从数据库取数填写对应城市的天气信息

FR 日报表中需要填写对应城市的天气信息,包括日期、天气、最高温度、最低温度等,目前只能通过城市名人工查询后获得这些信息。

FineDataLink 可简化上述操作流程:根据数据库表存储的城市数据,调用高德 API 接口,获取对应天气数据并存储到数据库,FR 报表直接取数即可。

参数赋值、循环容器使用高德接口获取城市天气数据
14用户想要同步钉钉通信录中的部门信息和用户信息。由于接口只能获取当前部门的下一级部门基础信息,不支持获取当前部门下所有层级子部门。因此需要依次根据父部门ID循环获取子部门ID,然后遍历循环部门ID,获取用户信息。参数赋值、循环容器API取数-钉钉获取部门用户信息
15日程信息通过 FR 填报到数据库或者保存到简道云中,原始信息可能会被其他部门进行增删改操作,因此希望将日程数据在企业微信中记录,方便在活动开始前对相关的同学自动提醒。

较复杂,详情参见文档

循环容器、参数输出活动日程信息更新至企业微信日程
16用户希望定时任务仅在工作日运行。调用判断当天是否为工作日的接口,若当天是工作日,进行常规后续节点运行;若当天不是工作日,可运行虚拟节点条件分支、消息通知、虚拟节点仅在工作日执行定时任务
17用户数据库存储了经纬度数据,希望转换成对应的中文地址(国家、省份、城市、区县、街道等),最后将转换后的数据保存到数据库中。可以调用高德或百度地址转换的 API 接口实现。参数赋值、循环容器将经纬度数据转换为中文地址
18用户希望根据业务数据库中的数据,更新、新增宜搭表单的数据。调用 新增或更新表单实例 接口,来更新、新增宜搭表单的数据。参数赋值、循环容器新增/修改宜搭表单数据
19

公司内部使用北森系统进行人员管理。

希望将 根据时间窗滚动查询变动的员工与单条任职信息 中的人员信息数据取出,以便进行数据分析。

较复杂,详情参见文档参数赋值、循环容器API取数-北森接口获取员工任职信息
20

将某业务数据全部取出。

接口文档中 pageNum 表示数据页数;pageSize 表示在每一页的数据条数。

API取数-按页数取数 不同的是,接口返回值中没有总页数 total_pages,需要手动计算。

从接口中获取 pageNum 和 pageSize 返回值,并使用 SparkSQL 计算出数据总页数 total_pages,将其作为参数,也就是需要执行的次数;

使用循环容器和内置参数 loopTimes,首次执行 pageNum 页码数为 1 ,然后递增执行取出每一页的数据,当循环次数 loopTimes<=total_pages 继续执行,当循环次数 loopTimes>total_pages 时,停止执行。

参数赋值、API输入API取数-计算总页数并按页取数
21通过接口的形式实现阿里云签名认证来获取服务器CPU数据,可满足客户安全、业务需求。

1)准备 V3版本请求体&签名机制 中的部分公共请求头和 查询指定监控项的最新监控数据 接口请求参数

2)准备 V3版本请求体&签名机制 请求头的签名认证

3)使用接口  查询指定监控项的最新监控数据 获取返回的服务器数据,并落入指定数据库。

参数输出、API输入、SparkSQL 使用FDL接口形式实现阿里云服务器数据监听

3. 拓展阅读编辑

  • 如果需加工、融合后的数据封装并发布为规范化 API 接口数据,供外部系统调用,实现数据价值输出及共享开放。详情参见:数据服务概述

  • 如果需要将多应用系统的数据通过FDL打通,实现业务系统间的数据交互(交互的形式为API)。比如系统中数据取出并分析后,希望直接把分析结果数据推送到业务系统中(以 API 的形式),形成业务系统里面需要直接处理的业务数据,打通分析到业务的流程。详情参见:API输出逻辑说明