You need to enable JavaScript to run this app.
导航

配置 REST_API(HTTP形式)数据源

最近更新时间2024.01.16 14:33:02

首次发布时间2023.09.15 15:35:45

REAT_API 数据源,为您提供离线任务读取 REAT_API 通道的功能,实现与其他数据源之间的数据传输能力。
本文为您介绍 DataSail 的 REAT_API 数据同步的能力支持情况。

1 使用限制

  1. 目前 REST_API 数据源仅支持配置批式读取任务。
  2. 子账号新建数据源时,需要有项目的管理员角色,方可以进行新建数据源操作。各角色对应权限说明,详见:管理成员

2 支持的字段类型

类型分类

数据类型

备注

整数类型

LONG

DATETIME 可以转为 LONG 时间戳

字符串类型

STRING

浮点类型

DOUBLE

布尔类型

BOOLEAN

日期时间类型

DATE

DATETIME 需要转为 LONG 时间戳

列表类型

LIST

支持的元素类型:BOOLEAN,LONG,DOUBLE,INTEGER

键值对类型

MAP

键、值支持的类型:LONG,STRING,DOUBLE,BOOLEAN,DATE

3 数据同步任务开发

3.1 数据源注册

新建数据源操作详见配置数据源,下面为您介绍配置 REST_API 数据源信息说明:
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。

参数

说明

基本配置

*数据源类型

REST_API

*接入方式

目前仅支持公网方式接入。

*数据源名称

数据源的名称,可自行设置,仅支持中文,英文,数字,“_”,100个字符以内。

描述

对当前新建数据源的注释说明,方便后续进行管理。

参数配置

*API Url

输入源端 API Url 链接地址。

默认请求头

默认的请求头格式,例如:{"Auxxxxxxxion":"Bearer sext-txxxn-1"}

*验证方式

REST_API 数据源注册时,目前支持以下三种验证方式,您可根据实际场景选择鉴权模式:

  • No auth:源端 API 没有开启鉴权方式。
  • Basic auth:API 开启了用户名和密码的鉴权方式,需另外填写以下信息:
    • 用户名:输入有数据库权限的账号名称。
    • 密码:输入对应账号的密码信息。
  • Token auth:API 开启了 Token 的鉴权方式,您需要输入具体的 Token 信息:
    • Token:输入可以验证通过的 Token 值信息。

3.2 新建离线任务

REST_API 数据源测试连通性成功后,进入到数据开发界面,开始新建 REST_API 相关通道任务。
新建任务方式详见离线数据同步

3.3 可视化配置说明

任务创建成功后,您可根据实际场景,配置 REST_API 批式读通道任务。

说明

目前暂不支持配置 REST_API 批式写通道。

  • REST_API 批式读
    图片
    数据来源选择 REST_API,并完成以下相关参数配置:
    其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。

    参数项

    说明

    *数据源类型

    REST_API

    *数据源名称

    下拉选择已注册成功的 REST_API 数据源。
    若还未建立相应数据源,可单击数据源管理按钮,前往创建 REST_API 数据源。

    *请求 Method

    请求方法支持 GET 和 POST,两种方式。

    请求参数

    输入传递给 API 的请求参数信息:

    • GET方法:abc=123&def=456
    • POST方法:{"abc":123,"def":456}

    *返回数据结构

    接口返回数据的类型,返回一条数据或者一组数据。

    *数据格式

    支持 json 的格式。

    数据存储 json 路径

    输入单条或者数组数据存储的 json path 路径,将会读取您输入 path 路径下的 json 内容。
    可为$(表示保存在根路径),或者类似 aa.bb.cc 的格式。

    *预览数据

    预览展示 API 中的数据,检查数据格式情况。

    *请求次数

    选择 reader 端是单次请求或者多次请求,多次请求需要配置参数,多次请求时,需添加以下对应参数:

    • 多次请求对应参数:例如如 pagenumber,第一次请求对应 pagernumber=0,步长+1,最后一次 pagenumber=100。
    • StartIndex:多次请求的起点, 大于等于 0 , 区间左包含。
    • Step:多次请求步长, 大于等于1。
    • EndIndex:多次请求的终点, 大于等于 startIndex + step , 区间右包含。
  • 字段映射
    数据来源和目标端配置完成后,需要指定来源和目标端的字段映射关系,根据字段映射关系,数据集成任务将源端字段中的数据,写入到目标端对应字段中。
    您可通过以下三种方式操作字段映射关系:

    • 自动添加:单击自动添加按钮,根据两端数据表信息,可以自动填充来源和目标的字段信息。
    • 手动添加:单击手动添加按钮,可以手动编辑来源和目标的字段信息,可以逐个添加。
    • 移动\删除字段:您也可以根据需要移动字段映射顺序或删除字段。

3.4 DSL 配置说明

REST_API 数据源同时也支持使用脚本模式(DSL)的方式进行配置。
在某些复杂场景下,您可通过任务脚本的方式,按照统一的 Json 格式,编写 REST_API Reader 参数脚本代码,来运行数据集成任务。

3.4.1 进入 DSL 模式

进入 DSL 模式操作流程,可详见 MySQL 数据源-4.4.1 进入DSL 模式

3.4.2 配置 REST_API Reader

进入 DSL 模式编辑界面后,您可根据实际情况替换相应参数,REST_API Reader 脚本示例如下:

{
  "job": {
    "version": "0.2",
    "type": "batch",
    "common": {
      ...
    },
    "reader": {
      "type": "restapi",
      "datasource_id": null,
      "content_type": "JSON",
      "class": "com.bytedance.bitsail.batch.restapi.RestApiInputFormat",
      "url": "https://issues.apache.org/jira/rest/api/2/search",
      "params": {
        "jql":"project=FLINK AND updated>-1d"
      },
      "response_structure": "array",
      "request_method": "GET",
      "request_times": "once",
      "json_path": "issues",
      "columns" :[
        {
          "name":"expand",
          "type":"string"
        },
        {
          "name":"id",
          "type":"string"
        },
        {
          "name":"self",
          "type":"string"
        },
        {
          "name":"key",
          "type":"string"
        }
      ]
    },
    "writer": {
      ...
    }
  }
}

其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。

参数名称

参数含义

*type

Reader type 类型,此处默认固定值 restapi

*datasource_id

对应 REST_API 的数据源 ID,暂时不支持,这里请填写 null

*class

RestApi Reader connector type,默认固定值:com.bytedance.bitsail.batch.restapi.RestApiInputFormat

*columns

需要同步的字段名称及其类型信息。

*content_type

数据格式类型,默认填写 JSON 形式。

*url

请求 URL

*params

请求参数

*request_method

api 请求方法,支持 GET/POST

request_times

循环请求次数,支持单次(once)/多次(multiple),默认 once

start_index

循环开始的 index

end_index

循环结束的 index

step

循环的步长

json_path

导入的 json 路径,需要是 jsonPath 语法,默认 $

response_structure

api 返回数据结构,支持单条数据(object)/数组数据(array),默认 object

poll_interval_mills

api 请求限速,默认请求间隔 1000ms

headers

api 请求 header

retry

重试次数,默认 3 次

retry_backoff_multiplier_ms

重试间隔增加的倍数,重试间隔采用 Fibonacci 数列的方式增加重试时间,默认 100ms

retry_backoff_max_ms

最大重试间隔,默认 10000ms

connect_timeout

http 请求超时时间,默认 60000ms

socket_timeout

http 请求 socket 超时时间,默认60000ms