创建API数据源

本文为您介绍创建API数据源。

前提条件

您已创建API接口。

使用限制

  • 仅专业版支持创建API数据源。

  • 当API数据源的连接方式为直连模式时,每次请求返回的数据量应满足以下条件:不超过10MB,同时列数不超过100列,行数不超过1000行。

添加API数据源

  1. 登录Quick BI控制台

  2. 请按照下述步骤添加数据源。

    1. 创建数据源入口进入创建数据源界面。

    2. 选择API数据源。image

      您也可以在API数据源管理界面添加API数据源

      image

  3. API数据连接面板中,进行以下配置。

    说明

    您可以参照以下参数进行调试:https://api.github.com/

    1. 建立API连接。

      可以通过建立API连接获取Web服务数据,例如CRM、ERP系统数据,目前支持JSON格式。

      1. 配置基础认证下的参数。image

        参数名称

        描述

        连接名称

        自定义API接口在Quick BI数据源列表的显示名称。

        名称由汉字、数字、字母、下划线(_)或短划线(-)组合组成。

        接口地址

        输入API接口的地址。

        请求类型

        选择API接口请求类型。

        支持GETPOST两种类型,请求类型默认为GET

      2. 选择连接方式抽取直连

        • 抽取:支持手动或周期性定时更新数据,适用于数据实时性要求低的场景。

        • 直连:支持直连API查询,实时更新数据,适用于实时性要求高的小数据量场景。

          直连方式支持开启短效缓存,缓存时间可以选择5分钟、10分钟、30分钟。开启后,在一定时间内可避免重复发送请求,保护源端API服务访问性能不受影响,并节省API服务的调用费用。

          说明

          直连模式下,每次请求返回的数据量应满足以下条件:不超过10MB,同时列数不超过100列,行数不超过1000行。

          image

      3. (可选)配置参数设置

        在参数设置中,可以查看并设置需要传参的数据。

        参数名称

        描述

        普通参数

        请求地址后面的参数即为普通参数。

        格式为url?key1=value1&key2=value2

        您可以单击添加参数,通过普通参数传参。例如,对于数据量过大的API接口,您可以通过分页的方式请求,提供一个动态参数 ${PageIndex} 进行传参,请参见分页请求分页参数_4.3.3详细的参数描述请参见参数介绍

        头参数

        存放在Header中的即为头参数。

        通常不变的量通过Header传参,支持手动增(①)删(②)改(③)Header参数。Header参数

        查询语句

        可选项。通过请求体(body)进行传参。请求体仅支持JSON格式输入。

        例如{"key1":"value1"}

        授权验证

        您可以选择无需授权验证,也可以选择基础认证摘要认证

        请参见http认证鉴权01基本认证和摘要认证

      4. 单击测试连接,成功后单击下一步image

    2. 解析请求结果界面的数据结构区域,会呈现API请求下的所有字段,您可以根据需要选中字段并修改字段类型。

      说明
      • 抽取模式下,仅选中的参数才会同步至Quick BI系统。

      • 每次选中字段时,必须为相同层级,否则会解析失败。

      image

      选中的字段可以在数据预览区域查看字段的值。image

    3. 选择更新周期并单击完成,设置数据同步。

      说明

      连接方式为抽取时,才需配置更新周期。

      image

      • 选择手动更新,手动触发后,才会进行数据的同步。

      • 选择定时更新并配置更新频率(天级或小时级)后,则每日会定时进行数据的同步。

    4. 支持失败重跑,开启失败重跑后,可应对因网络抖动等原因造成的数据抽取失败,最大支持重跑2次,每次间隔1分钟。

      image

    此时您可以在API数据源管理界面,看到您创建的数据源。image

    您可以单击API数据源右侧的image图标编辑API数据源。

    说明

    不支持编辑连接方式。

参数介绍

API数据源支持配置普通参数和头参数,参数格式有静态参数和动态参数两种。

参数格式设计

  • 参数格式为KeyA = ValueA。其中KeyA为参数名,ValueA为参数值。

  • 支持2种参数:

    • 固定参数值格式,例如:user=myname

    • 动态参数值格式,例如: mydate=${bizdate}

      具体动态参数值的支持,参考下面说明。image

动态参数

动态参数解析正确后,会根据当前时间把解析结果回显在接口地址上,因此可以通过查看解析结果判断参数配置是否正确。动态参数由基础日期参数和时间间隔偏移两部分组成:

  • 日期动态参数:提供基于业务日期和执行时间两种方式。

    • {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}

  • 暂不支持秒。

类型

参数格式

参数说明

系统动态参数

${bizdate}

业务日期,默认格式为${yyyyMMdd},更新数据时,前一天的日期,T-1。

例如,当前是2021-12-29,则${bizdate}20211228

${dueTime}

执行日期,默认格式为$[yyyyMMdd],更新数据时,当天的日期,即T。

例如,当前是2021-12-29,则${dueTime}20211229

具体时间动态参数,参考下表。

当前日期

基于业务日期(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数据源支持分页请求

  1. 使用动态参数形式定义分页参数:${PageIndex} ${PageIndex:num}

    • ${PageIndex}代表被标记的参数为分页参数的起始页码,默认为1。

    • ${PageIndex:num}代表被标记的参数为分页参数的起始页码,起始页码被指定为num。比如:'${PageIndex:2}'即会从第2页开始获取数据。

  2. 动态参数解析支持GET/POST请求,选择POST请求时,请求语句只支持JSON第一层参数解析。

说明
  • 默认每页最多1000条,最大支持100页。

  • 当单页返回数据超过1000条时,本次同步任务会报错并退出。

GET请求示例如下:GET

POST请求示例如下:post