You need to enable JavaScript to run this app.
导航
数据集 Open API 概述
最近更新时间:2024.11.20 21:12:15首次发布时间:2021.02.23 10:42:04

1. 概述

数据集 Open API 提供与数据集相关操作的 API,您可以通过开放能力实现灵活调用数据集。数据集 Open API 主要包含:数据集操作 API、数据集信息 API、数据集维度指标与血缘关系 API、数据集同步任务 API、数据集可视化查询参数与开放查询 API、数据集模型画布与运维类工具 API、项目数据集标签与文件夹 API、项目数据集与数据源 API、项目集群配置 API。本文为您简单介绍数据集 Open API 的情况,其余 API 将为您单独成文介绍。
注意:在您开始使用本文介绍的接口之前,请先了解调用方式

2. JWT-Token 接入

2.1 基础概念

(1) Client
Client 是用户服务和服务通信的凭证,包含 Client Id、Client Secret 两部分。其中 Client Id 是该通信凭证在 Prep 系统中的唯一 Id,Client Secret 是该通信凭证的秘钥。在请求 Open API 前,用户服务需要使用 Client 信息来获取需要请求的用户的 Token。
(2) Token
Token 代表某一用户的身份信息,可使用 Client 信息请求 DataWind 来获取。有了 Token 后,就可以在请求中带上 Token 来请求系统。

2.2 主体流程

Image

2.3 获取 ClientId 和 ClientSecret

(1) 获取用户session Id打开浏览器的devTools(快捷键 F12 或者 Option+Command+i),找到Application,在Cookies中找到当前域名项,点击之后在右侧的列表找到sessionid
Image
(2)通过sessionId申请当前身份对应的clientIdclientSecret,详见本文档3.1部分获取 ClientId 与 ClientSecret 接口;每次申请都会返回不同的 client 内容,即一个身份可能绑定多个 client 信息,请谨慎申请与保管。获取身份对应绑定的全部 client 信息,或者想删除已绑定的某个 client,详见本文档3.3部分获取用户已绑定的 ClientId 信息和3.4部分删除用户某个已绑定的 ClientId。
(3)通过clientId+clientSecret获取最终使用的jwtToken,随后使用该 token 作为 header 放置在后续的各种请求之中,详见本文档3.2部分获取 JWT-Token。

3. Token 申请

3.1 获取 ClientId 与 ClientSecret

请求说明

  • 接口描述:通过用户的 sessionId 获取申请 token 前所需的 clientId 和 Secret
  • 接口路径:/aeolus/openApi/v3/access/verifyApp

请求示例

curl --location --request POST '{{domain}}/aeolus/api/v3/openapi/client?bindingType=system' \
--header 'Cookie: sessionid={{sessionid}}'

请求参数

名称

类型

必选

枚举值

含义说明

bindingType

string

system
user

默认值 user。
type 为 system 的 client 只有系统管理员允许申请,如有使用需求,请联系运维人员

返回参数示例

{
    "code": "aeolus/ok",
    "data": {
        "bindingType": "user",
        "clientId": "fb05f583357f********************",
        "clientSecret": "dde0d98d********************",
        "ownerEmailPrefix": "user_1"
    },
    "msg": "成功"
}

备注:

3.2 获取 JWT-Token

请求说明

  • 接口描述:通过 clientId 和 Secret 获取可用的 JWT-Token
  • 接口路径:/aeolus/api/v3/openapi/jwtToken

请求示例

curl --location --request POST 'https://hsm-default.fedev.bytedanc*.net/aeolus/api/v3/openapi/jwtToken' \
--header 'Content-Type: application/json' \
--header 'Cookie: locale=en-us' \
--data-raw '{
     "metadata":{
        "clientId": "fb05f583357f********************",
        "clientSecret": "dde0d98d********************",
         "proxyUser": "xiajinfu.xjf",
         "expire":36000
     }
 }'

请求参数

名称

类型

必选

枚举值

含义说明

clientId

string

接口[1.1]中获取的 clientId

clientSecret

string

接口[1.1]中获取的 clientSecret

expire

integer

过期时间,单位为秒,默认为 3600s

proxyUser

string

  1. proxyUser,可选参数,默认为client的owner
    1. Binding type 为 user,则该值必须与client的owner一致
    2. Binding type 为 system,则该值可以为任意的用户

返回参数示例

{
    "code": "aeolus/ok",
    "data": {
        "jwtToken": "eyJhbGciOiJSUzI1NiIsInR5************.ey*****************************************************************************************************************************************************************************.********************-*************************************************************************************-****************************************************************************************************************************-***-********************************************-******************************************************-*************************-****************************************************************************-************-*************************************-*********************************************************************************************************************************************************-****************-******************5sus",
        "proxyUser": "user_1"
    },
    "msg": "成功"
}

备注:

3.3 获取用户已绑定的 ClientId 信息

  • 接口描述:获取用户当前已绑定的 clientId,掌握授权情况
  • 接口路径:/aeolus/api/v3/openapi/clients
  • cURL示例
curl --location --request GET '{{domain}}/aeolus/api/v3/openapi/clients' \
--header 'cookie: sessionid={{sessionid}}'
  • 入参说明

名称

类型

必选

枚举值

含义说明

  • 出参说明
{
    "code": "aeolus/ok",
    "data": [
        "cf921c4fec********************",
        "d90da55105********************",
        "0ae6d49129********************",
        "ae3c704f0b********************",
        "28f252732f********************",
        "fb05f58335********************",
        "7b0623b176********************"
    ],
    "msg": "成功"
}

备注:

3.4 删除用户某个已绑定的 ClientId

请求说明

  • 接口描述:删除用户某个当前已绑定的 clientId
  • 接口路径:/aeolus/api/v3/openapi/client

请求示例

curl --location --request DELETE '{{domain}}/aeolus/api/v3/openapi/client?clientId=0ae6d49129a10141aef47df6d*******' \
--header 'cookie: sessionid={{sessionid}}'

请求参数

名称

类型

是否必选

示例值

描述

clientId

string

待删除的clientId

返回参数

本接口无特有的返回参数。

返回示例

{
    "code": "aeolus/ok",
    "data": {
        "affectedRows": 1
    },
    "msg": "成功"
}

# 1代表成功删除了一条记录

备注:

4. 所有数据集接口介绍
  • 新接口 V4 版本采用标准的 restful 接口命名方式,即资源+行为的命名方式。
  • 文档的划分按照资源为主体,需要对某个资源做什么操作,就在对应的文档下找到对应的行为 API。
  • 针对每个接口提供直接可以导入 postMan 的 cURL 示例,方便客户体验,由于各环境 DataWind 域名和各个请求中都含有通用含义的变量,因此各接口的 cURL 实例中均采用{{}}包裹变量,{{变量}}格式可直接被 postMan 识别。
  • 变量对照含义表:

jwtToken -> {{jwtToken}}
aeolus 域名 -> {{domain}}
项目 ID -> {{appId}}
数据集 ID -> {{dataSetId}}
数据集标签 Id {{tagId}}
数据集文件夹 Id {{dataSetFolderId}}

> * 本文适用的产品版本: 2.48.0及以上



| | | | \
|接口类型 |接口介绍 |详情文档 |
|---|---|---|
| | | | \
|数据集操作 API |用户可以通过 API 进行创建、更新、移动、删除数据集,检查并移入数据集至回收站等操作。 |[点击查看](/docs/4726/1225207) |
| | | | \
|数据集信息 API |用户可以通过 API 进行查看数据集详情页、编辑页的基础信息以及更新基础信息、设置标签等操作。 |[点击查看](/docs/4726/1225558) |
| | | | \
|数据集维度指标与血缘关系 API |用户可以通过 API 进行查看、更新数据集维度指标分类信息以及查看数据集血缘统计信息、完整信息、上游数据源信息等操作。 |[点击查看](/docs/4726/1225559) |
| | | | \
|数据集同步任务 API |用户可以通过 API 进行查看、更新数据集同步任务设置,提交数据集同步任务回溯以及终止数据集同步任务实例等操作。 |[点击查看](/docs/4726/1225560) |
| | | | \
|数据集可视化查询参数与开放查询 API |用户可以通过 API 进行查看、更新可视化查询参数配置以及通过接口直接获取数据、输出数据到csv文件等操作。 |[点击查看](/docs/4726/1225561) |
| | | | \
|数据集模型画布与运维类工具 API |用户可以通过 API 进行查看数据集模型画布与地表元数据刷新等操作。 |[点击查看](/docs/4726/1225562) |
| | | | \
|项目内数据集 API |用户可以通过 API 进行获取、创建、更新项目下相关数据集信息和文件夹信息,获取、新增、删除私有集群写入用户列表等操作。 |[点击查看](/docs/4726/1225573) |