You need to enable JavaScript to run this app.
文档中心
客户数据平台(私有化)

客户数据平台(私有化)

复制全文
下载 pdf
API
Rest API数据连接
复制全文
下载 pdf
Rest API数据连接

1. 功能概述

支持通过REST API 接入数据。

2. 使用前提

用户需要具备 项目中心-权限-按内容管理-模块-数据管理-新建连接 权限。

3. 操作说明

1.点击 数据管理 - 数据连接
2.在数据连接目录左上角- 新建数据连接 按钮,选择 API - REST API 数据接入
Image

3.1 配置基本信息

Image

  • 数据连接名称:支持自定义名称,或使用系统默认名称(例如:REST_API_2.0_时间戳)。
  • 输入API地址:在“URL地址”框中,填入想要连接的API的完整网址。
  • 选择请求类型:支持GET、POST两种请求方式。
  • 设置超时时间:在“超时时间”框中,输入请求在没有响应时等待的最长时间(单位:毫秒),默认为3分钟。
  • 设置重试次数:配置重试次数,即当请求失败,系统尝试重试的次数,最多支持5次。

3.2 字段路径配置规则

总则:对JSON进行操作,$表示根节点,.号表示取子节点。
如果JSON数据为:

{
  "showapi_res_error": "",
  "showapi_res_id": "6597a2f5fb638cf45b4d460c",
  "showapi_res_code": 0,
  "showapi_fee_num": 1,
  "showapi_res_body": {
    "list": [
      {
        "time": "14:26:57",
        "zhesuan": "193.69",
        "code": "AED",
        "hui_out": "195.91",
        "chao_in": "192.95",
        "chao_out": "199.47",
        "name": "阿联酋迪拉姆",
        "hui_in": "194.55",
        "day": "2024-01-05"
      },
      {
        "time": "14:26:57",
        "zhesuan": "477.56",
        "code": "AUD",
        "hui_out": "481.77",
        "chao_in": "478.08",
        "chao_out": "483.16",
        "name": "澳大利亚元",
        "hui_in": "478.57",
        "day": "2024-01-05"
      }
    ],
    "listSize": 28,
    "ret_code": 0
  }
}

则一些路径对应的值结果取值如下:

$.showapi_fee_num = 1
$.showapi_res_id = "6597a2f5fb638cf45b4d460c"
$.showapi_res_body.list.* = [{"time":"14:26:57","zhesuan":"193.69" ... // 后面省略

3.2.1 前置操作动态参数的结果字段路径

这里配置的是前置请求的结果作为动态参数传入当前请求时,所配置的对应字段的路径,规则同上。

3.2.2 当前请求 - 解析请求与路径配置 - 字段路径

这里配置的是解析结果的根路径,规则如下:

  • 根路径指向 必须是一个Map或者Array,否则无法解析出字段的key。
  • 如果指向的是 Array,则必须写成能解析出key的形式,例如以.* 结尾,例如$.list.*,不得直接写成$.list,这样解析不出key。
  • 配置完成后,点击获取字段,只会解析出该路径下的第一层字段结构,且这些字段都为基本数据类型。

示例:

// 取整个结果,结果在字段包括:showapi_res_error、showapi_res_id、...、showapi_res_body
$
// 取数组中的内容
$.showapi_res_body.list.* = [{"time":"14:26:57","zhesuan":"193.69" ... // 后面省略

3.2.3 当前请求 - 字段配置 - 解析路径

这里配置的是解析根路径后获取的最终字段的路径,同时也是该数据连接的最终字段结果。
这里要注意:对于根路径为数组的情况,如果字段路径前缀和根路径不一致,则最终生成的结果集中,会把该字段对应的值计算出来后直接加到数组的每一个元素中。
例如,对于天气数据,根路径为 $.forcast15days.list.* ,表示未来15天的天气,用户再添加一个 $.city 的字段代表城市,则最终会把 $.city 的值计算出来后,直接加到每一个未来天气的数据里去作为一个叫做city的key。其值在数组里的每一项都是相同的。

3.3 动态参数编写规则

动态参数和后置脚本都选用Groovy作为脚本引擎。
对于params、body、header、url中出现的 ${},作为 groovy的字符串插值表达式 执行获取结果。同时会内置一些自定义函数,例如md5()方法、日期变量等。以下是一些执行结果示例:

假如目前有两个参数,是在前置请求中配置好的,如下:
num1 = 1
num2 = 2

则${}里面的内容会被作为表达式执行,其余部分为普通字符串,下面表达式结果分别为:
abc               // abc
${num1}           // 1
${num1+num2}      // 3
${num1}+num2      // 1+num2
${num3}           // 报错,没有num3参数
${"${num1}"}      // ${num1}

3.4 置操作编写规则

下面这段内容放到后置操作里就行,作为默认内容

def convertJson(response) {
    /*
    这里填写后置操作代码
    response表示api返回的结果,假设api返回结果为
    {
        "city": "上海市",
        "forcast": [
            {"temperature": 5, "day": "2024-01-01"},
            {"temperature": 6, "day": "2024-01-02"},
        ],
        "test": "test"
    }
    一些代码示例:
    场景1:添加、编辑、循环,为list中每个元素加上city
    ls = response.forcast
    for (i=0; i< ls.size(); i++) {
        ls[i].city = response.city
    }
    场景2:删除某个key
    response.remove("test")
    */
    return response;
}

3.5 分页功能规则

3.5.1 基础配置

开启分页功能后,按要求配置即可,其中终止条件为groovy表达式,例如需要实现当请求结果中的data列表为空时结束分页,可以按照如下方式配置:
Image
使用时通过 ${pageNum} 引用即可,该变量会从起始页开始,一直到达到终止条件
Image

3.5.2 终止条件规则

支持groovy语法,当达到终止条件时不再进入下一页。response代表本次请求的结果,一些例子如下:

response.data.size() == 0   // 当response下的data列表的长度为0(空列表)时停止分页
response.hasMore == false // 当response下的hasMore为false时停止分页

3.6 解析请求与路径配置

完成上述配置后,点击“发送请求”,系统将解析请求,解析的顺序为「前置操作」>「当前请求」>「后置操作」,并将解析结果呈现在「解析结果」中。
Image

  • 字段路径:输入字段路径,使用$表示根节点,.号表示子节点。点击“获取字段”按钮,系统将解析并展示“字段配置”区域。

说明

提示: 路径应指向Map或Array,若希望解析Array,需要在路径末尾加上.*

提供两个示例如下: $.map1 代表取根节点下map1字段对应的数据; $.array1.* 代表取根节点下array1字段对应的数据。

  • 字段配置:使用“添加”按钮支持新建字段,解析逻辑基于用户输入的rootPath为基准,解析出结果。同时,支持删除已配置的字段。
  • 数据预览:点击“数据预览”按钮,支持查看当前选中字段的前100行明细数据。

3.7 测试连接与保存

Image
点击 测试连接 ,即可进行数据源连通性测试。测试成功后,点击 保存 即可完成当前数据连接所有配置。

最近更新时间:2024.11.28 17:21:53
这个页面对您有帮助吗?
有用
有用
无用
无用