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

前提条件

您已创建API接口。

使用限制

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

添加API数据源

  1. 登录Quick BI控制台
  2. 请按照下述步骤添加数据源。
    添加API数据源_4.3.3
  3. API数据连接面板中,进行以下配置。
    1. 建立API连接。
      可以通过建立API连接获取Web服务数据,例如CRM、ERP系统数据,目前支持JSON格式。
      1. 配置基础认证下的参数。配置基础认证_4.3.3
        参数名称 描述
        连接名称 自定义API接口在Quick BI数据源列表的显示名称。

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

        接口地址 输入API接口的地址。
        请求类型 选择API接口请求类型。

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

      2. 可选:配置参数设置
        在参数设置中,可以查看并设置需要传参的数据。
        参数名称 描述
        普通参数 请求地址后面的参数即为普通参数。

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

        您可以单击添加参数,通过普通参数传参。例如,对于数据量过大的API接口,您可以通过分页的方式请求,提供一个动态参数 ${PageIndex} 进行传参,请参见分页请求分页参数_4.3.3详细的参数描述请参见参数介绍
        头参数 存放在Header中的即为头参数。
        通常不变的量通过Header传参,支持手动增(①)删(②)改(③)Header参数。Header参数
        查询语句 可选项。通过请求体(body)进行传参。请求体仅支持JSON格式输入。

        例如{"key1":"value1"}

        授权验证 您可以选择无需授权验证,也可以选择基础认证摘要认证
      3. 单击测试连接,成功后单击下一步建立API
    2. 解析请求结果界面的数据结构区域,会呈现API请求下的所有字段,您可以根据需要选中字段并修改字段类型。
      说明
      • 仅选中的参数才会同步至Quick BI系统。
      • 每次选中字段时,必须为相同层级,否则会解析失败。
      字段解析
      选中的字段可以在数据预览区域查看字段的值。数据预览
    3. 选择更新周期并单击完成,设置数据同步。
      更新周期
      • 选择手动更新,手动触发后,才会进行数据的同步。
      • 选择定时更新并配置更新频率后,则每日会定时进行数据的同步。
    此时您可以在探索空间的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}
  • 暂不支持秒。
类型 参数格式 参数说明
系统动态参数 ${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