数据集 Open API 提供与数据集相关操作的 API,您可以通过开放能力实现灵活调用数据集。数据集 Open API 主要包含:数据集操作 API、数据集信息 API、数据集维度指标与血缘关系 API、数据集同步任务 API、数据集可视化查询参数与开放查询 API、数据集模型画布与运维类工具 API、项目数据集标签与文件夹 API、项目数据集与数据源 API、项目集群配置 API。本文为您简单介绍数据集 Open API 的情况,其余 API 将为您单独成文介绍。
注意:在您开始使用本文介绍的接口之前,请先了解调用方式。
(1) Client
Client 是用户服务和服务通信的凭证,包含 Client Id、Client Secret 两部分。其中 Client Id 是该通信凭证在 Prep 系统中的唯一 Id,Client Secret 是该通信凭证的秘钥。在请求 Open API 前,用户服务需要使用 Client 信息来获取需要请求的用户的 Token。
(2) Token
Token 代表某一用户的身份信息,可使用 Client 信息请求 DataWind 来获取。有了 Token 后,就可以在请求中带上 Token 来请求系统。
(1) 获取用户session Id
打开浏览器的devTools
(快捷键 F12 或者 Option+Command+i),找到Application
,在Cookies
中找到当前域名项,点击之后在右侧的列表找到sessionid
(2)通过sessionId
申请当前身份对应的clientId
与clientSecret
,详见本文档3.1部分获取 ClientId 与 ClientSecret 接口;每次申请都会返回不同的 client 内容,即一个身份可能绑定多个 client 信息,请谨慎申请与保管。获取身份对应绑定的全部 client 信息,或者想删除已绑定的某个 client,详见本文档3.3部分获取用户已绑定的 ClientId 信息和3.4部分删除用户某个已绑定的 ClientId。
(3)通过clientId
+clientSecret
获取最终使用的jwtToken
,随后使用该 token 作为 header 放置在后续的各种请求之中,详见本文档3.2部分获取 JWT-Token。
/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。 |
{ "code": "aeolus/ok", "data": { "bindingType": "user", "clientId": "fb05f583357f********************", "clientSecret": "dde0d98d********************", "ownerEmailPrefix": "user_1" }, "msg": "成功" }
备注:
无
/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 | 否 |
|
{ "code": "aeolus/ok", "data": { "jwtToken": "eyJhbGciOiJSUzI1NiIsInR5************.ey*****************************************************************************************************************************************************************************.********************-*************************************************************************************-****************************************************************************************************************************-***-********************************************-******************************************************-*************************-****************************************************************************-************-*************************************-*********************************************************************************************************************************************************-****************-******************5sus", "proxyUser": "user_1" }, "msg": "成功" }
备注:
无
/aeolus/api/v3/openapi/clients
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": "成功" }
备注:
无
/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代表成功删除了一条记录
备注:
无
- 新接口 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) |