离线同步任务支持API数据源,支持该数据源的抽取(Reader)

使用前提


在使用之前需要在项目中心(新)完成API数据源的登记。
数据源登记过程中,需要填写如下信息:
API Reader - 图1

  • 数据源名称:必填,API数据源的名称
  • 数据源标识:仅允许包含英文小写、数字、下划线,只允许英文小写开头,最大长度为64个字符。平台内唯一,保存数据源后数据标识不可修改
  • 归属项目:必填,由于元数据中心是项目组级别,因此此处支持选择项目组下的项目,默认为当前项目名称
  • 负责人:必填,默认为当前创建人员
  • 协助管理员:同负责人,有该数据源的管理权限,包括编辑、设置“源系统账号映射”。可在安全中心为自己或其他人设置该数据源的使用权限
  • URL:支持host域名或者IP:Port格式。支持http://https://
  • 自定义参数:自定义参数支持key-value的格式,用于静态数据
说明: 此处的参数引用时,使用${XXX}格式进行引用。
唯一性校验规则:基于URL进行校验。

支持配置通过其它接口获取参数值,数据传输在调用API前,实时处理这个参数接口。需要注意的是,此处接口host同上述登记host,且不支持跨域获取接口参数。

API Reader - 图2

  • 参数名称:必填,即变量名称
  • 请求方式:必填,支持POSTGET
  • Headers:请求中的Head参数
  • Body/Params:当请求类型为POST时,此处为Body,即参数放在请求体内;当请求类型为GET时,此处为Params,即参数一般直接跟在url后面
  • 截取内容:必填,即变量值,指的是请求返回的数据中需要返回的值。支持两种表达方式,a. 用.逐层获取json内的值; b. 用JSONPath获取json内的值

关于截取内容的方式:

  • 方式一:用“.”分隔变量。如果要返回下方“传输name”这个值,表达式为data.name。

    {
    "id":"1",
    "name":"传输",
    "data":{
         "name":"传输name"
         }
    }
  • 方式二:JSONPath表达式。方式一适用于大多数场景,但是由于只能逐层获取String,对于特殊场景需要使用方式二,即JSONPath表达式。如果要返回下方dataArr[0]这个对象,则在表达式$.dataArrr.[0]前加上前缀JSONPath,即JSONPath:$.dataArrr.[0]。如果要返回name=“arr1”,则表达式为JSONPath:$.dataArr.[0].name

    {
    "id":"1",
    "name":"传输",
    "data":{
         "name":"传输name"
         },
    "dataArr":[
         {
         "id":1,
         "name":"arr1"
         },
         {
         "id":2,
         "name":"arr2"
         }
    ]
    }

API作为数据来源


在数据来源端选择数据源类型API及已经登记的API名称,完成请求方法及路径、Headers、Body/Params、总量字段及特殊字符替换的填写。
API Reader - 图3

  • 总量字段:如果启用分页,此项为必填项。支持offset&limitpageSize&pageNumber,如果选用offset&limit将会产生参数${offset}${limit};如果选用pageSize&pageNumber将会产生参数${pageSize}${pageNumber}。此处输入框中总量字段指的是返回结果中用来表示API请求获取到的总返回接过数。例如,请求内容: { "corpAccessToken":"CORP_ACCESS_TOKEN", "corpId":"CORP_ID", "pageSize":"${pageSize}", "pageNumber":"${pageNumber}" },返回结果:{ totalCount: 1000, pageSize: 10, pageNumber: 1, ...},此处总量字段输入的内容为totalCount
  • 特殊字符:选择是否开启及替换内容。
    • 不可见字符请使用Unicode编码表示。
    • 使用下列字符:|、^、$、.、*、\、?、+、{ 、}、[、 ]、( 、)时,请在字符前添加"\"来表示。
    • 需要替换多个特殊字符时,字符间请使用“,”分隔。不支持替换“,”字符。

使用说明


任务参数配置

在数据源登记时,配置通过其它接口获取参数值需要添加参数如下图所示:
API Reader - 图4
该参数在新建离线同步任务中进行引用时,填写方式如下:
API Reader - 图5

列映射处理

当数据来源为API时,同样支持字段映射配置,不过API调用接口的返回值会被处理成一个JSON字符串,且列名为response,因此只能导入目标端为String类型的字段里,且目标端只有1个字段。
API Reader - 图6
如果未启用分页,则导入后在目标端中显示1行1列;如果启用分页,则导入后在目标端中显示1列多行。此处支持通过JSONPath表达式取response中的值。

分页参数填写

系统支持两种分页参数,offset&limitpageSize&pageNumber,此处以pageSizepageNumber为例:

  • 数据源登记配置API相关内容,在自定义参数中填写参数名称和值,如下图所示。
    API Reader - 图7
    其中,pageSize表示一页返回的数量,pageNumber表示起始页码值。

  • 在离线同步任务新建任务时,可在Params中填写get的请求变量值。
    API Reader - 图8