本文为您介绍创建API数据源。
前提条件
您已创建API接口。
使用限制
仅专业版支持创建API数据源。
当API数据源的连接方式为直连模式时,每次请求返回的数据量应满足以下条件:不超过10MB,同时列数不超过100列,行数不超过1000行。
添加API数据源
登录Quick BI控制台。
请按照下述步骤添加数据源。
从创建数据源入口进入创建数据源界面。
选择API数据源。
您也可以在API数据源管理界面添加API数据源。
在API数据连接面板中,进行以下配置。
说明您可以参照以下参数进行调试:https://api.github.com/。
建立API连接。
可以通过建立API连接获取Web服务数据,例如CRM、ERP系统数据,目前支持JSON格式。
配置基础认证下的参数。
参数名称
描述
连接名称
自定义API接口在Quick BI数据源列表的显示名称。
名称由汉字、数字、字母、下划线(_)或短划线(-)组合组成。
接口地址
输入API接口的地址。
请求类型
选择API接口请求类型。
支持
GET
和POST
两种类型,请求类型默认为GET
。选择连接方式为抽取或直连。
抽取:支持手动或周期性定时更新数据,适用于数据实时性要求低的场景。
直连:支持直连API查询,实时更新数据,适用于实时性要求高的小数据量场景。
直连方式支持开启短效缓存,缓存时间可以选择5分钟、10分钟、30分钟。开启后,在一定时间内可避免重复发送请求,保护源端API服务访问性能不受影响,并节省API服务的调用费用。
说明直连模式下,每次请求返回的数据量应满足以下条件:不超过10MB,同时列数不超过100列,行数不超过1000行。
(可选)配置参数设置。
在参数设置中,可以查看并设置需要传参的数据。
参数名称
描述
普通参数
请求地址后面的参数即为普通参数。
格式为
url?key1=value1&key2=value2
。您可以单击添加参数,通过普通参数传参。例如,对于数据量过大的API接口,您可以通过分页的方式请求,提供一个动态参数
${PageIndex}
进行传参,请参见分页请求。详细的参数描述请参见参数介绍。头参数
存放在Header中的即为头参数。
通常不变的量通过Header传参,支持手动增(①)删(②)改(③)Header参数。
查询语句
可选项。通过请求体(body)进行传参。请求体仅支持JSON格式输入。
例如
{"key1":"value1"}
授权验证
您可以选择无需授权验证,也可以选择基础认证和摘要认证。
单击测试连接,成功后单击下一步。
在解析请求结果界面的数据结构区域,会呈现API请求下的所有字段,您可以根据需要选中字段并修改字段类型。
说明抽取模式下,仅选中的参数才会同步至Quick BI系统。
每次选中字段时,必须为相同层级,否则会解析失败。
选中的字段可以在数据预览区域查看字段的值。
选择更新周期并单击完成,设置数据同步。
说明连接方式为抽取时,才需配置更新周期。
选择手动更新,手动触发后,才会进行数据的同步。
选择定时更新并配置更新频率(天级或小时级)后,则每日会定时进行数据的同步。
支持失败重跑,开启失败重跑后,可应对因网络抖动等原因造成的数据抽取失败,最大支持重跑2次,每次间隔1分钟。
此时您可以在API数据源管理界面,看到您创建的数据源。
您可以单击API数据源右侧的图标编辑API数据源。
说明不支持编辑连接方式。
参数介绍
API数据源支持配置普通参数和头参数,参数格式有静态参数和动态参数两种。
参数格式设计
参数格式为
KeyA = ValueA
。其中KeyA
为参数名,ValueA
为参数值。支持2种参数:
固定参数值格式,例如:
user=myname
动态参数值格式,例如:
mydate=${bizdate}
具体动态参数值的支持,参考下面说明。
动态参数
动态参数解析正确后,会根据当前时间把解析结果回显在接口地址上,因此可以通过查看解析结果判断参数配置是否正确。动态参数由基础日期参数和时间间隔偏移两部分组成:
日期动态参数:提供基于业务日期和执行时间两种方式。
{yyyyMMdd}
为业务日期,即当前更新数据日期的前一天,即T-1。[yyyyMMdd]
为执行日期,即当前更新数据的日期T。T为天的粒度。
小时参数的偏移:提供基于小时的偏移。
HH
表示小时mm
表示分钟ss
表示秒小时的偏移:
delta/24
例如,在指定执行时间前1小时的表达式为:
$[HH-1/24]
。分钟参数的偏移:提供基于分钟偏移。
HH
表示小时mm
表示分钟ss
表示秒分钟的偏移:
delta/24/60
例如,在业务日期前1分钟:
${HHmmss-1/24/60}
。暂不支持秒。
类型 | 参数格式 | 参数说明 |
系统动态参数 |
| 业务日期,默认格式为 例如,当前是2021-12-29,则 |
| 执行日期,默认格式为 例如,当前是2021-12-29,则 |
具体时间动态参数,参考下表。
当前日期 | 基于业务日期(T-1)的配置 | 实际值 | 基于预计执行时间(T)的配置 | 实际值 |
2022-01-10 | ${yyyyMMdd} | 20220109 | $[yyyyMMdd] | 20220110 |
2022-01-10 | ${yyyyMMdd-1} | 20220108 | $[yyyyMMdd-1] | 20220109 |
2022-01-10 | ${yyyyMMdd-7} | 20220102 | $[yyyyMMdd-7] | 20220103 |
2022-01-10 | ${yyyy-MM-dd} | 2022-01-09 | $[yyyy-MM-dd] | 2022-01-10 |
2022-01-10 | ${yyyy-MM} | 2022-01 | $[yyyy-MM] | 2022-01 |
2022-01-10 | ${yyyy-MM-1} | 2021-12 | $[yyyy-MM -1] | 2021-12 |
2022-01-10 | ${yyyy} | 2022 | $[yyyy] | 2022 |
2022-01-10 | ${yyyy+1} | 2021 | $[yyyy+1] | 2022 |
2022-01-10 | ${yyyy/MM/dd HH:mm:ss} | 2022/01/09 00:00:00 | $[yyyy/MM/dd HH:mm:ss] | 2022/01/10 00:00:00 |
2022-01-10 | ${yyyy/MM/dd HH:mm:ss-1/24} | 2022/01/08 23:00:00 | $[HH:mm:ss-5/24/60] | 23:55:00 |
2022-01-10 | ${HH} | 00 | $[HH] | dueTime对应的小时 |
2022-01-10 | ${HH-1} ${HH-1/24} | 23 | $[HH-1] $[HH-1/24] | dueTime对应的小时-1 |
分页请求
抽取模式下,API数据源支持分页请求。
使用动态参数形式定义分页参数:${PageIndex} 或${PageIndex:num}。
${PageIndex}代表被标记的参数为分页参数的起始页码,默认为1。
${PageIndex:num}代表被标记的参数为分页参数的起始页码,起始页码被指定为num。比如:'${PageIndex:2}'即会从第2页开始获取数据。
动态参数解析支持GET/POST请求,选择POST请求时,请求语句只支持JSON第一层参数解析。
默认每页最多1000条,最大支持100页。
当单页返回数据超过1000条时,本次同步任务会报错并退出。
GET请求示例如下:
POST请求示例如下: