此手册用于记录大数据开发与管理平台中,离线开发产品所有对外开放的OpenAPI,阅读此手册,你将了解离线开发产品开放的OpenAPI能力与调用方法。

一、离线开发公共参数

1.1 提示

1.1.1 任务

说明

任务是一个DAG图(有向无环图),其描述了作业中多个节点之间的逻辑(依赖关系)和规则(运行约束)。

标识

标识:由project标识和flow标识组成,唯一确定一个任务,不可变。

名称:标识为flowAliasName,代表任务名称,可变。

节点:通过上下游依赖关系组成任务DAG图。

标识:节点由job标识,唯一确定一个节点,不可变。

名称:标识为jobAliasName,代表节点名称,可变。

1.1.2 队列

说明

执行调度任务的yarn资源队列。

标识

队列展示名:yarnQueue

被调度系统最终引用的队列名:yarnFullQueue

队列类型:ntv,代表原生队列;sla,代表具有优先级功能的队列。

是否为高优先级:标识为highPriority,队列类型为sla时使用。highPriority=true,开启高优先级;highPriority=false,不开启高优先级。

分类

原生队列:主要指社区版原生队列,队列类型标识为ntv。yarnFullQueue直接传队列展示名yarnQueue。

优先级队列:网易自研队列,队列类型标识为sla,当开启高优先级功能,即highPriority为true,yarnFullQueue传 root.yarnQueue.sla;当不开启高优先级,即highPriority为false,yarnFullQueue传 root.yarnQueue.default。

1.2 响应格式

名称 类型 描述
code Number 响应码
reqId String 请求ID
cost Number 耗时,单位:ms
msg String 响应消息
result Object 响应结果

1.3 响应码

1.3.1 系统正常码
响应码 说明
0 服务器正确处理请求
1.3.2 系统异常码(小于0)
响应码 说明
-1 服务器错误,空指针、数组越界等非业务代码抛出异常
-2 非法请求,参数异常、参数格式错误等接口的请求非法性抛出的通用错误
-3 用户不在当前项目
-4 用户未登录(或者会话无效),且该接口需要登录
-5 加锁失败
-6 签名无效
-7 无可用项目
1.3.3 业务公共异常码(1000 ~ 1999)
响应码 说明
1001 公共异常
1002 操作异常
1003 客户端操作失败(SDK使用)
1004 无权限
1005 资源不存在
1006 资源已存在
1.3.4 子产品操作异常码(2000 ~ 2999)
响应码 说明
2000 控制台调用异常
1.3.5 文件夹异常码(3000 ~ 3199)
响应码 说明
3000 文件夹公共异常
3001 文件夹查询异常
3002 文件夹创建异常
3003 文件夹删除异常
3004 文件夹更新异常
3005 文件夹移动异常
1.3.6 任务异常码(3200 ~ 3399)
响应码 说明
3200 任务公共异常
3201 任务查询异常
3202 任务创建异常
3203 任务删除异常
3204 任务包上传异常
3205 任务提交上线异常
3206 任务立即运行异常
3207 获取任务立即运行状态异常
3208 取消任务立即运行异常
3209 文件夹下任务移动异常
3214 获取任务绑定issue工单变更信息失败
1.3.7 调度异常码(3400 ~ 3599)
响应码 说明
3400 调度公共异常
3401 调度查询异常
3402 调度设置异常
3403 调度更新异常
3404 调度取消异常

1.4 枚举列表

1.4.1 文件夹

FolderTypeEnum

描述:文件夹类型

枚举值 类型 描述
common String 用户创建文件夹
ai String AI文件夹
default String 默认文件夹
1.4.2 任务

JobTypeEnum

描述:节点类型

枚举值 类型 描述
hive_jdbc_sql String SQL节点,执行引擎为Hive,运行方式为JDBC
hive_client_sql String SQL节点,执行引擎为Hive,运行方式为Client
spark_cluster_sql String SQL节点,执行引擎为Spark,运行方式为Cluster
spark_client_sql String SQL节点,执行引擎为Spark,运行方式为Client
ndi String 数据同步节点
spark String Spark节点
script String script节点或cube节点(cube节点本质上是script节点的特例)
vertical_sql String verticalSQL节点
mysql String MySQL节点
oracle_sql String OracleSQL节点
gp_sql String GPSQL节点
ai_innerflow String AI2.0节点
innerflow String 嵌套流节点
noop String 虚拟节点
decision String 选择节点
mr String MR节点

FlowModeEnum

描述:任务模式

枚举值 类型 描述
dev String 开发模式
online String 线上模式

ResourceGroupModeEnum

描述:资源组模式

枚举值 类型 描述
dev String 开发模式
online String 线上模式

ExecNofityConditionEnum

描述:立即运行告警通知场景

枚举值 类型 描述
succeed String 运行成功
failed String 运行失败

JobExecStatusEnum

描述:立即运行状态

枚举值 类型 描述
READY String 就绪
PREPARING String 就绪中
QUEUED String 进入队列等待运行
RUNNING String 运行中
PAUSED String 暂停
SUCCEEDED String 成功
KILLING String 终止中
KILLED String 终止
FAILED String 失败
SKIPPED String 跳过,代表跳过该节点执行
DISABLED String 禁用,节点处于禁用状态
CANCELLED String 撤销

FlowExecStatusEnum

描述:立即运行状态

枚举值 类型 描述
READY String 就绪
PREPARING String 就绪中
RUNNING String 运行中
SUCCEEDED String 成功
KILLING String 终止中
KILLED String 终止
FAILED String 失败
FAILED_RETRYING String 失败重试中,配置重试的任务失败重试会有该状态
FAILED_FINISHING
String 节点运行失败继续运行其他符合运行条件的节点,如果立即运行失败策略配置[FailureActionEnum]中的FINISH_CURRENTLY_RUNNING或FINISH_ALL_POSSIBLE,只要有节点失败就可能进入该状态,当可运行的节点运行结束时,将转化为FAILED状态
FAILED_SUCCEEDED String 失败,但强行置为成功

FilterTypeEnum(v6.6.3新增)

描述:任务过滤类型枚举。

枚举值 类型 描述
RELEASE_PERMISSION String 保留用户有上线权限的任务

LockStatus(v6.6.3新增)

描述:锁状态

枚举值 类型 描述
LOCKED String 锁定中
WITHDRAWED String 锁被撤销
RELEASED String 任务已发布

LockTypeEnum(v6.6.3新增)

描述:任务锁类型枚举

枚举值 类型 描述
USER_LOCK String 个人锁
ORDER_LOCK String 数据开发平台工单锁
DATAOPS_LOCK String 外部DataOps锁

IssueUpdateResultEnum(v6.6.5.1新增)

描述:任务关联的工单变更结果

枚举值 类型 描述
0 Number 任务提交成功且工单变更成功
1 Number 任务提交成功且工单变更成功但关联父工单变更失败
2 Number 任务提交失败
3 Number 任务提交成功但工单及关联父工单均变更失败
1.4.3 调度

FailureActionEnum

描述:运行失败策略

枚举值 类型 描述
FINISH_CURRENTLY_RUNNING String 继续执行运行中
CANCEL_ALL String 停止
FINISH_ALL_POSSIBLE String 继续执行所有

ScheduleStatusEnum

描述:调度状态

枚举值 类型 描述
READY String 准备
PAUSED String 暂停
EXPIRED String 过期

ConcurrentSettingEnum

描述:并行策略

枚举值 类型 描述
CONCURRENT_OPTION_SKIP String 跳过,串行执行
CONCURRENT_OPTION_IGNORE String 忽略,并行执行

CalendarEffectModeEnum

描述:交易日日历调度生效方式

枚举值 类型 描述
currentDay String 当日生效
nextDay String 次日生效

CalendarStatusEnum

描述:交易日日历状态

枚举值 类型 描述
0 Number 关闭
1 Number 开启

SchedulePeriodEnum

描述:调度周期类型

枚举值 类型 描述
MONTH String
WEEK String 星期
DAY String
HOUR String 小时
MINUTE String 分钟

ScheduleTypeEnum

描述:调度设置方式

枚举值 类型 描述
PERIOD String 周期调度
CRON String crontab调度

1.5 响应实体列表

1.5.1 基础实体

Pagination

描述:分页查询结果

字段 类型 描述
pageSize Number 每页显示条数
pageNum Number 页数
totalCount Number 总条数
totalPage Number 总页数
list List<Object> 当前页结果

UserBase

描述:用户基本信息

字段 类型 描述 必传
user String 邮箱
fullName String 全名
1.5.2 文件夹

FolderSimple

描述:文件夹信息

字段 类型 描述 必传
id Number 文件夹唯一标识
name String 文件夹名称
folderType FolderTypeEnum[FolderTypeEnum] 文件夹类型
parentId Number 父文件夹id
1.5.3 任务

JobBase

描述:节点基本信息

字段 类型 描述 必传
job String 节点唯一标识
jobAliasName String 节点名称

JobSimple

描述:节点简要信息

字段 类型 描述 必传
job String 节点唯一标识
jobAliasName String 节点名称
type JobTypeEnum 节点类型
forbidden Boolean 是否禁用,true:禁用;false:不禁用
upstreamJobs List<String> 与本节点关联的上游节点

FlowBase(v6.6.5.1新增)

描述:任务基础信息

字段 类型 描述 必传 备注
project String 任务project标识
projectAliasName String 任务project名称
flow String 任务flow标识
flowAliasName String 任务名称

FlowSimple

描述:任务简要信息

字段 类型 描述 必传 备注
folderId Number 所在文件夹id
folderName String 所在文件夹名称
owner UserBase 任务负责人
project String 任务project标识
projectAliasName String 任务project名称
flow String 任务flow标识
flowAliasName String 任务名称
comment String 描述
lockInfo FlowLock 任务锁信息,如果任务未被锁定时则为空 v6.6.3新增

FlowDetail

描述:任务详情

字段 类型 描述 必传
folderId Number 所在文件夹id
folderName String 所在文件夹名称
project String 任务project标识
flow String 任务flow标识
flowAliasName String 任务名称
owner UserBase 任务负责人
mode FlowModeEnum 任务模式
jobInfos List<JobSimple> 任务中包含的节点
comment String 描述

JobExecDetail

描述:节点运行详情

字段 类型 描述 必传
job String 节点标识
jobAliaisName String 节点名称
startTime Number 开始执行时间,毫秒。-1代表未开始运行
endTime Number 执行结束时间,毫秒。-1 代表未结束运行
execDuration Number 运行时长,毫秒,-1代表未开始运行
status JobExecStatusEnum 运行状态

FlowExecDetail

描述:任务运行详情

字段 类型 描述 必传
project String 任务project标识
projectAliasName String project名称
flow String 任务flow标识
flowAliasName String 任务名称
jobExecDetails List<JobExecDetail> 执行时长
startTime Number 执行开始时间,毫秒。-1代表未开始运行
endTime Number 执行结束时间,毫秒。-1代表未结束运行
execDuration Number 运行时长,毫秒。-1代表未开始运行
status FlowExecStatusEnum 运行状态

FLowLock(v6.6.3新增)

描述:任务锁

字段 类型 描述 必传
lockId String 锁唯一标识,只有外部DataOps锁才有唯一标识,其他锁唯一标识都为空
lockType LockTypeEnum 锁类型
lockTime Number 锁定时间(时间戳)
lockUser String 锁定人(邮箱)
lockStatus LockStatus 锁状态
lockDetail String 锁扩展信息

TaskIssueInfo(v6.6.5.1新增)

描述:任务提交上线绑定issue变更信息

枚举值 类型 描述
product String 项目
clusterId String 集群
submitterEmail String 提交人邮箱
submitterName String 提交人名字
submitTime Number 提交时间
parentIssueId Number 关联父工单id,没有则为:""
issueId String 关联工单id
updateResult IssueUpdateResultEnum 工单变更结果
startStatus String 工单最初状态
endStatus String 工单期望最终状态
taskInfo FlowBase 关联任务信息
1.5.4 调度

DependJobSimple

描述:某节点依赖其他节点的依赖信息

字段 类型 描述 必传
product String 产品账号
project String 任务project标识
flow String 任务flow标识
flowAliasName String 任务名称
dependentJobInfo JobBase 被依赖的节点
jobInfo JobBase 任务中需要设置依赖的节点,传:表示节点依赖;不传:表示任务依赖
offset Number 跨流依赖偏移量

ExecutionSetting

描述:执行参数

字段 类型 描述 必传
highPriority Boolean 是否高优先级队列,原生队列不返回
yarnId String Yarn id
yarnQueue String 队列展示名,参考:[队列]
retrySetting RetrySetting 自动重试设置
failureAction FailureActionEnum 失败策略
concurrentSetting ConcurrentSettingEnum 并发策略
parameters Map<String, String> 自定义参数

ScheduleCalendarSimple

描述:交易日日历信息

字段 类型 描述 必传
calendar String 交易日日历标识
calendarName String 交易日日历名称
status CalendarStatusEnum 交易日日历状态
effectMode CalendarEffectModeEnum 交易日日历调度生效模式

ScheduleTimeSetting

描述:调度信息中的时间信息

字段 类型 描述 必传 备注
scheduleStartTime Number 调度开始时间,GMT毫秒。
scheduleStartTimeString String 调度开始时间字符串yyyyMMdd格式 6.6.3多时区新增
nextExecTime Number 下次执行时间,GMT毫秒。
scheduleExpireTime Number -1:永不失效;其他:失效时间,GMT毫秒。
scheduleExpireTimeString String 失效时间字符串yyyyMMdd格式,“”永不失效 6.6.3多时区新增

SchedulePeriodSimple

描述:调度周期信息

字段 类型 描述 必传
type ScheduleTypeEnum 调度方式,PERIOD:周期调度 ;CRON:定时调度
periodValue Number 周期间隔。如果type=PERIOD有该值
periodUnit SchedulePeriodEnum 周期间隔单位。如果type=PERIOD有该值
cron String cron表达式,如果type=CRON有该值

RetrySetting

描述:重试设置

名称 类型 描述 必传
enable Boolean 是否自动重试
maxTimes Number 重试次数,如果开启自动重试有该值
interval Number 重试间隔,如果开启自动重试有该值

ScheduleDetail

描述:调度详情

字段 类型 描述 必传
scheduleId Number 调度id
project String 任务project标识
flow String 任务flow标识
flowAliasName String 任务名称
periodInfo SchedulePeriodSimple 调度周期信息
timeSetting ScheduleTimeSetting 调度相关时间信息
status ScheduleStatusEnum 调度状态
calendarInfo ScheduleCalendarSimple 交易日日历信息
crossSelfDepend
Boolean
是否开启跨周期自依赖,true:开启;false:不开启。关闭表示跨流不依赖上一周期,即各周期相互独立;开启后当前任务执行必须依赖此任务的上一周期实例
dependSamePeriod
Boolean 是否开启同周期依赖,true:开启;false:不开启。当调度周期为1天且被依赖任务调度周期也为1一天时,该选项起作用。
scheduleDependencies List<DependJobSimple> 调度依赖节点
executionSetting ExecutionSetting 执行设置
disableJobInfos List<JobBase> 不设置调度的节点,没有则返回空列表

ExecDetail

字段 类型 描述 必传
project String 任务project标识
flow String 任务flow标识
msg String 运行信息
execId Number 实例id

1.6 请求实体列表

基础实体

1.6.1 任务
1.6.2 调度

AlertSettingReq

描述:告警设置

字段 类型 描述 必填
conditions List<ExecNotifyConditionEnum> 告警通知场景
channelIds List<Number> 告警通知通道

RetrySettingReq

名称 类型 描述 必填
enable Boolean 是否自动重试
maxTimes Number 最大重试次数,如果开启自动重试有该值
interval Number 重试间隔,如果开启自动重试有该值

ExecutionSettingReq

描述:执行参数

字段 类型 描述 必填
yarnId String Yarn id
yarnFullQueue String 调度使用队列名,参考:[队列]
retrySetting RetrySettingReq 重试设置
failureAction FailureActionEnum 失败策略
concurrentSetting ConcurrentSettingEnum 并发策略
parameters Map<String,String> 自定义参数

ScheduleTimeSettingReq

描述:调度信息中的时间信息

字段 类型 描述 必填
scheduleStartTime Number 调度开始时间,GMT毫秒,不得早于当前时间
scheduleExpireTime Number 调度截止时间,超出该时间任务将不再生成调度实例。
-1:永不失效;其他:失效时间,GMT毫秒。
scheduleStartTimeString String 调度开始时间字符串yyyyMMdd格式 6.6.3多时区新增
scheduleExpireTimeString String 失效时间字符串yyyyMMdd格式,“”永不失效 6.6.3多时区新增

ScheduleCalendarSimpleReq

描述:交易日日历信息

字段 类型 描述 必填
calendar String 交易日日历标识
effectMode CalendarEffectModeEnum 交易日日历调度生效模式

SchedulePeriodSimpleReq

描述:调度周期信息

字段 类型 描述 必填
type ScheduleTypeEnum 调度方式,PERIOD:周期调度 ;CRON:定时调度
periodValue Number 周期间隔。如果type=PERIOD有该值
periodUnit SchedulePeriodEnum 周期间隔。如果type=PERIOD有该值
cron String cron表达式,如果type=CRON有该值

DependJobSimpleReq

描述:某节点依赖其他节点的依赖信息

字段 类型 描述 必传
product String 产品账号
project String 任务project标识
flow String 任务flow标识
dependentJob String 被依赖的节点标识
job String 任务中需要设置依赖的节点标识,传:表示节点依赖;不传:表示任务依赖
offset Number 跨流依赖偏移量

二、OpenAPI列表

2.1 OpenApi总览

模块请求方法版本状态API路径名称
文件夹GETv6.6.1上线/folder/v1/list查询文件夹列表
POSTv6.6.1上线/folder/v1/create创建文件夹
POSTv6.6.1上线/folder/v1/delete删除文件夹
POSTv6.6.1上线/folder/v1/update修改文件夹
POSTv6.6.1上线/folder/v1/move移动文件夹
任务

GETv6.6.7上线/task/v1/list查询任务列表
GETv6.6.7上线/task/v1/detail/get查询任务详情
POSTv6.6.1上线/task/v1/delete删除任务
POSTv6.6.1上线/task/v1/create创建任务
POST待定待上线/task/v1/upload/task/v1/upload上传任务包
POSTv6.6.1上线/task/v1/release任务提交上线
POSTv6.6.7上线/task/v1/execute立即运行
POSTv6.6.7上线/task/v1/execute/cancel取消立即运行
GETv6.6.7上线/task/v1/execute/status/get查询立即运行状态
POST待定待上线/task/v1/project/move移动文件夹下任务
GETv6.6.7上线/task/v1/issue-statistic/list查询关联issue任务上线变更统计
调度
GETv6.6.1上线/schedule/v1/detail/get查询调度
POSTv6.6.1上线/schedule/v1/set设置调度
POSTv6.6.1上线/schedule/v1/update更新调度
POSTv6.6.1上线/schedule/v1/cancel取消调度

2.2 文件夹

2.2.1 查询文件夹列表

GET /folder/v1/list

产品版本:

描述:查询文件夹列表

URL参数/请求体

名称 类型 描述 必填 默认值
product String 项目
user String 当前用户
clusterId String 集群
pageSize Number 每页条数 25
pageNum Number 第几页 1
keyword String 检索关键字,支持文件名folderName检索,默认按文件夹名称升序

请求示例(参数未编码,调用时请编码):

curl 'http://127.0.0.1:8080/folder/v1/list?product=intern&user=test@163.com&clusterId=dev4&pageSize=1&pageNum=25&keyword=test'

响应体

名称 类型 描述 必传
code Number 状态码
msg String 错误信息
cost Number 接口消耗毫秒数
reqId String 请求ID
result Pagination<FolderSimple> 任务列表

响应示例:

{

"code": 0,

"msg": null,

"result": {

    "pageNo": 25,

    "pageNum": 25,

    "pageSize": 1,

    "total": 26,

    "totalCount": 26,

    "totalPage": 26,

    "list": \[

        {

            "parentid": 4067,

            "id": 4871,

            "name": "test1dk",

            "folderType": "common"

        }

    \]

},

"reqId": "618351931e7c423e9d1d1e95e0c59889",

"cost": 922

}

2.2.2 创建文件夹

POST /folder/v1/create

产品版本:

描述:创建文件夹

URL参数/请求体

名称 类型 描述 必填 默认值
product String 项目
user String 当前用户
clusterId String 集群
name String 文件夹名称
folderType FolderTypeEnum 文件夹类型 common
parentId Number 父文件夹id,-1代表该文件夹为顶层文件夹

请求示例:

{

"product":"intern",

"clusterId":"dev4",

"user":"test1@corp.netease.com",

"parentId":4186,

"name":"test\_openapi\_folder\_name"

}

响应体

名称 类型 描述 必传
code Number 状态码
msg String 错误信息
cost Number 接口消耗时间,GMT毫秒。
reqId String 请求ID
result Number 若同名文件夹存在,返回文件夹id;不存在,返回新创建文件夹id

响应示例:

{

"code": 0,

"msg": null,

"result": 4964,

"reqId": "16f077b0ec5740839ca585977a03b3db",

"cost": 894

}

2.2.3 删除文件夹

POST /folder/v1/delete

产品版本:

描述:删除文件夹

URL参数/请求体

名称 类型 描述 必填 默认值
product String 项目
user String 当前用户
clusterId String 集群id
id Number 文件夹id

请求示例:

{

"product":"intern",

"clusterId":"dev4",

"user":"test01@corp.netease.com",

"id":4964

}

响应体

名称 类型 描述 必传
code Number 状态码
msg String 错误信息
cost Number 接口消耗时间,GMT毫秒。
reqId String 请求ID
result Object 返回结果

响应示例:

{

"code": 0,

"msg": null,

"result": null,

"reqId": "81d1a212455640aca5fde309bee5b4ee",

"cost": 257

}

2.2.4 修改文件夹

POST /folder/v1/update

产品版本:

描述:修改文件夹

URL参数/请求体

名称 类型 描述 必填 默认值
product String 项目
user String 当前用户
clusterId String 集群
id Number 文件夹id
name String 修改后的文件夹名称

请求示例:

{

"product":"intern",

"clusterId":"dev4",

"user":"test01@corp.netease.com",

"id":4966,

"name":"test\_folder\_rename"

}

响应体

名称 类型 描述 必传
code Number 状态码
msg String 错误信息
cost Number 接口消耗时间,GMT毫秒。
reqId String 请求ID
result Object 返回结果

响应示例:

{

"code": 0,

"msg": null,

"result": null,

"reqId": "ce9fd3466f6242e6bf41b97389b7b0ad",

"cost": 936

}

2.2.5 移动文件夹

POST /folder/v1/move

产品版本:

描述:移动文件夹

URL参数/请求体

名称 类型 描述 必填 默认值
product String 项目
clusterId String 集群id
user String 当前用户
id Number 需要移动文件夹id
targetParentId Number 目标位置的父文件夹id,-1表示移动到最外层

请求示例:

{

"product":"intern",

"user":"test01@corp.netease.com",

"clusterId":"dev4",

"id":4966,

"targetParentId":4186

}

响应体

名称 类型 描述 必传
code Number 状态码
msg String 错误信息
cost Number 接口消耗时间,GMT毫秒。
reqId String 请求ID
result Object 返回结果

响应示例:

{

"code": 0,

"msg": null,

"result": null,

"reqId": "8f2e169846e44cc6b753abd0bdb8475c",

"cost": 264

}

2.3 任务

2.3.1 查询任务列表

GET /task/v1/list

产品版本:

描述:查询任务列表,只返回开发模式任务

URL参数/请求体

名称 类型 描述 必填 默认值 备注
product String 项目
user String 当前用户
clusterId String 集群id
pageSize Number 每页条数 25
pageNum Number 第几页 1
keyword String 检索关键字,支持任务名称flowAliasName检索,默认按任务名称升序
filterType FilterTypeEnum 过滤类型枚举,为空时表示不过滤 v6.6.3新增

请求示例(参数未编码,调用时请编码):

curl 'http://127.0.0.1:8080/task/v1/list?product=intern&user=test01@corp.netease.com&pageNum=1&pageSize=1000&clusterId=dev4&keyword=dianxin'

响应体

名称 类型 描述 必传
code Number 状态码
msg String 错误信息
cost Number 接口消耗毫秒数
reqId String 请求ID
result Pagination<FlowSimple> 任务列表

响应示例:

{

"code": 0,

"msg": null,

"result": {

    "pageNo": 1,

    "pageNum": 1,

    "pageSize": 1000,

    "total": 4,

    "totalCount": 4,

    "totalPage": 1,

    "list": \[

        {

            "folderId": 4580,

            "folderName": "OFR",

            "owner": {

                "user": "test01@corp.netease.com",

                "fullName": "孙xx"

            },

            "project": "ea5ef048e64143939e79d54005952570$$dev",

            "projectAliasName": "B\_dianxin02",

            "flow": "B\_dianxin02",

            "flowAliasName": "B\_dianxin02",

            "comment": "VTC:代理商领卡信息1",

            "lockInfo": null

        },

        {

            "folderId": 4580,

            "folderName": "OFR",

            "owner": {

                "user": "test0201@corp.netease.com",

                "fullName": "孙xx"

            },

            "project": "cad926ea77044e178c423239a874c91f$$dev",

            "projectAliasName": "C\_dianxin02",

            "flow": "C\_dianxin02",

            "flowAliasName": "C\_dianxin02",

            "comment": "VTC:代理商领卡信息1",

            "lockInfo": null

        }

    \]

},

"reqId": "1cb0d8fbcf714c8d83151664a2e83d92",

"cost": 1545

}

2.3.2 查询任务详情

GET /task/v1/detail/get

产品版本:

描述:查询任务详情

URL参数/请求体

名称 类型 描述 必填
product String 项目
user String 当前用户
clusterId String 集群id
project String 任务project标识
flow String 任务flow标识
mode FlowModeEnum 任务模式

请求示例(参数未编码,调用时请编码):

curl 'dev&flow=C\_dianxin02&mode=dev"">http://127.0.0.1:8080/task/v1/detail/get?product=intern&user=test01@corp.netease.com&clusterId=dev4&project=cad926ea77044e178c423239a874c91fdev&flow=C\_dianxin02&mode=dev'

响应体

名称 类型 描述 必填
code Number 状态码
msg String 错误信息
cost Number 接口消耗毫秒数
reqId String 请求ID
result FlowDetail 任务详情

响应示例:

{

"code": 0,

"msg": null,

"result": {

    "jobInfos": \[

        {

            "job": "C\_dianxin02",

            "jobAliasName": "C\_dianxin02",

            "type": "noop",

            "forbidden": false,

            "upstreamJobs": \[

                "trigger\_node"

            \]

        },

        {

            "job": "trigger\_node",

            "jobAliasName": "trigger\_node",

            "type": "mysql",

            "forbidden": false,

            "upstreamJobs": \[

                "va\_ofr\_main\_asset\_hist\_a0501"

            \]

        },

        {

            "job": "va\_ofr\_main\_asset\_hist\_a0501",

            "jobAliasName": "va\_ofr\_main\_asset\_hist\_a0501",

            "type": "vertica\_sql",

            "forbidden": false,

            "upstreamJobs": \[\]

        }

    \],

    "folderId": 4580,

    "folderName": "OFR",

    "owner": {

        "user": "test01@corp.netease.com",

        "fullName": "xxx"

    },

    "project": "cad926ea77044e178c423239a874c91f$$dev",

    "projectAliasName": "C\_dianxin02$$dev",

    "flow": "C\_dianxin02",

    "flowAliasName": "C\_dianxin02",

    "comment": null,

    "lockInfo": null

},

"reqId": "2889f3ffd0374c5c95c77ad9accb0936",

"cost": 682

}

2.3.3 删除任务

POST /task/v1/delete

产品版本:

描述:删除任务,必须传开发模式任务标识,若有对应线上模式任务且未设置调度将一同删除

URL参数/请求体

名称 类型 描述 必填
product String 项目
user String 当前用户
clusterId String 集群id
project String 开发模式任务project标识

请求示例:

{

"product":"intern",

"user":"test01@corp.netease.com",

"clusterId":"dev4",

"project":"ea5ef048e64143939e79d54005952570$$dev"

}

响应体

名称 类型 描述 必传
code Number 状态码
msg String 错误信息
cost Number 接口消耗时间,GMT毫秒。
reqId String 请求ID
result Object 响应结果

响应示例:

{

"code": 0,

"msg": null,

"result": null,

"reqId": "f7450aedbc6e4718b6ab3ea0d12a0635",

"cost": 5166

}

2.3.4 发布任务

POST /task/v1/release

产品版本:

描述:发布任务,只允许发布开发模式任务

注意:

任务提交上线前会做一遍任务的卡点检测,如果未通过检测,则提交上线失败。

任务如果被DataOps锁锁定,在上线完成后会自动把数据研发平台记录的DataOps锁清理掉。调用方的DataOps锁需要调用方自己清理,不会有解锁的回调通知。

URL参数/请求体

名称 类型 描述 必填 备注
product String 项目
user String 当前用户(发布用户)
clusterId String 集群id
project String 任务project标识,只允许传开发模式任务
comment String 发布描述
flow String 任务flow标识 v6.6.3新增
lockId String 锁唯一标识 v6.6.3新增

请求示例:

{

"product":"intern",

"user":"test01@corp.netease.com",

"clusterId":"dev4",

"project":"c531515684c243e89a0ffd90328f30d0$$dev",

"comment":"woshuohhei",

"flow":"C\_dianxin02",

"lockId":"one\_lock"

}

响应体

名称 类型 描述 必填
code Number 状态码
msg String 错误信息
cost Number 接口消耗毫秒数
reqId String 请求ID
result Object 响应结果

响应示例:

{

"code": 0,

"msg": null,

"result": null,

"reqId": "e33417fffb574e6d827114a04380f733",

"cost": 9375

}

2.3.5 开发模式立即运行

POST /task/v1/execute

产品版本:

描述:立即运行,只允许运行开发模式任务

URL参数/请求体

名称 类型 描述 必传 默认值
product String 项目
user String 当前用户
clusterId String 集群id
project String 任务project标识
flow String 任务flow标识
scheduleTime Number 调度参考时间,毫秒
scheduleTimeString String 调度参考时间,字符串yyyyMMdd 6.6.3多时区新增
testModeEnable
Boolean 是否开启测试模式,有测试集群时生效,true:开启测试模式;false:关闭测试模式 false
alertSetting AlertSettingReq 告警配置
resourceGroupMode ResourceGroupModeEnum 资源组模式
enableJobs List<String> 需要运行的任务节点标识,不传标识全部节点
execSetting ExecutionSettingReq 运行设置,其中队列要求:testModeEnable=true,必须传测试集群上的队列;testModeEnable=false,必须传默认集群上的队列。

请求示例:

{

"product":"intern",

"user":"test01@corp.netease.com",

"clusterId":"dev4",

"project":"045236c1c43f4dcca7c20de2594d0b97$$dev",

"flow":"F\_dianxin",

"scheduleTime":1680858311,

"testModeEnable":true,

"alertSetting":{

    "conditions":\[

        "succeed",

        "failed"

    \],

    "channelIds":\[

        1,

        2,

        3

    \]

},

"resourceGroupMode":"online",

"disableJobs":\[

\],

"execSetting":{

    "yarnId":"default",

    "yarnFullQueue":"default.intern\_new.sla",

    "retrySetting":{

        "enable":true,

        "maxTimes":3,

        "interval":3000

    },

    "failureAction":"CANCEL\_ALL",

    "concurrentSetting":"skip",

    "parameters":{

    }

}

}

响应体

名称 类型 描述 必填
code Number 状态码
msg String 错误信息
cost Number 接口消耗毫秒数
reqId String 请求ID
result ExecDetail 执行信息

响应示例:

{

"code": 0,

"msg": null,

"result": {

    "project": "045236c1c43f4dcca7c20de2594d0b97$$dev",

    "flow": "F\_dianxin",

    "msg": null,

    "execId": 15355132

},

"reqId": "6bd81fdb969c4e3e8b81c27b4ff5526f",

"cost": 1877

}

2.3.6 开发模式取消立即运行

POST /task/v1/execute/cancel

产品版本:

描述:取消立即运行

URL参数/请求体

名称 类型 描述 必传 默认值
product String 项目
user String 当前用户
clusterId String 集群id
execId Number 执行id

请求示例:

{

"product":"intern",

"user":"test01@corp.netease.com",

"clusterId":"dev4",

"project":"045236c1c43f4dcca7c20de2594d0b97$$dev",

"flow":"F\_dianxin",

"execId":15355161

}

响应体

名称 类型 描述 必填
code Number 状态码
msg String 错误信息
cost Number 接口消耗毫秒数
reqId String 请求ID
result null

响应示例:

{

"code": -2,

"msg": "OpenApi调用失败:取消任务立即运行失败:任务运行status=SUCCEEDED,任务运行实例已是终态",

"result": null,

"reqId": "6ffaa78c1c714332a935fa2905094314",

"cost": 968

}

2.3.7 开发模式查询立即运行状态

GET /task/v1/execute/status/get

产品版本:

描述:查询立即运行状态

URL参数/请求体

名称 类型 描述 必传 默认值
product String 项目
user String 当前用户
clusterId String 集群id
execId Number 执行id

请求示例:

curl 'http://127.0.0.1:8080/task/v1/execute/status/get?product=intern&user=test01@corp.netease.com&clusterId=dev4&execId=15355161'

响应体

名称 类型 描述 必填
code Number 状态码
msg String 错误信息
cost Number 接口消耗毫秒数
reqId String 请求ID
result FlowExecDetail 立即运行实时状态,返回null时说明还没有开始执行

响应示例:

{

"code": 0,

"msg": null,

"result": {

    "project": "045236c1c43f4dcca7c20de2594d0b97$$dev",

    "projectAliasName": "F\_dianxin",

    "flow": "F\_dianxin",

    "flowAliasName": "F\_dianxin",

    "startTime": 1680858597631,

    "endTime": 1680858598213,

    "status": "SUCCEEDED",

    "execDuration": 582,

    "jobExecDetails": \[

        {

            "job": "F\_dianxin",

            "jobAliasName": "F\_dianxin",

            "startTime": 1680858597648,

            "endTime": 1680858597687,

            "execDuration": 39,

            "status": "SUCCEEDED"

        }

    \]

},

"reqId": "742387e443cf4c0a865b554c41bcb4a7",

"cost": 3304

}

2.3.8 创建任务

POST /task/v1/create

产品版本:

描述:创建任务,只支持多节点任务

URL参数/请求体

名称 类型 描述 必填
product String 项目
clusterId String 集群
user String 当前用户(上传用户)
folderId Number 任务所属文件夹id
flowAliasName String 任务名称
comment String 描述

请求示例:

{

"product":"intern",

"clusterId":"dev4",

"user":"test01@corp.netease.com",

"folderId":4967,

"flowAliasName":"test\_create\_openapi\_task",

"comment":"这是一个测试任务包"

}

响应体

名称 类型 描述 必填
code Number 状态码
msg String 错误信息
cost Number 接口消耗毫秒数
reqId String 请求ID
result Object 响应结果

响应示例:

{

"code": 0,

"msg": null,

"result": {

    "folderId": 4967,

    "folderName": "test\_openapi\_folder\_name",

    "owner": null,

    "project": "18c8c519f0cc45e4aa9c3b0ce72206bd$$dev",

    "projectAliasName": null,

    "flow": "test\_create\_openapi\_task",

    "flowAliasName": "test\_create\_openapi\_task",

    "comment": "这是一个测试任务包",

    "lockInfo": null

},

"reqId": "9daabe3628b54bb29d10e2977a3adcee",

"cost": 2145

}

2.3.9 上传任务包

POST /task/v1/upload

产品版本:

描述:上传任务包,只支持多节点任务

URL参数/请求体

名称 类型 描述 必填
product String 项目
clusterId String 集群
user String 当前用户(上传用户)
project String 任务peoject标识
flow String 任务flow标识
file File 任务包

请求示例:

curl -H

"Content-Type: multipart/form-data; boundary=----------0x15f0e7eb752"

--data "

------------0x15f0e7eb752

Content-Disposition: form-data; name=

"file"; filename="test_task.zip"

Content-Type: form-data

------------0x15f0e7eb752--"

http://ip:port/flow/v1/upload

响应体

名称 类型 描述 必填
code Number 状态码
msg String 错误信息
cost Number 接口消耗毫秒数
reqId String 请求ID
result Object 响应结果

响应示例:

{

"code": 0,

"msg": null,

"result": null,

"reqId": "febbc95cbfa744ff94dfd42fd3ff7571",

"cost": 321

}

2.3.10 移动文件夹下任务

POST /task/v1/move

产品版本:

描述:移动文件夹下任务

URL参数/请求体

名称 类型 描述 必填 默认值
product String 项目
user String 当前用户
clusterId String 集群
project String 任务project标识,只允许传开发模式project标识
oldFolderId String 原文件夹id
newFolderId String 目标文件夹id

请求示例:

{

"product":"intern",

"user":"sunweipeng01@corp.netease.com",

"clusterId":"dev4",

"project":"18c8c519f0cc45e4aa9c3b0ce72206bd$$dev",

"oldFolderId":4967,

"newFolderId":4871

}

响应体

名称 类型 描述 必传
code Number 状态码
msg String 错误信息
cost Number 接口消耗时间,GMT毫秒。
reqId String 请求ID
result Object 返回结果

响应示例:

{

"code": 0,

"msg": null,

"result": null,

"reqId": "500d2c04463441e2b00ba680eee10e95",

"cost": 1019

}

2.3.11 查询任务关联issue上线变更统计(v6.6.5.1新增)

GET /task/v1/issue-statistic/list

产品版本:

描述:查询任务关联issue上线变更统计

URL参数/请求体

名称 类型 描述 必填 默认值 备注
product String 项目
user String 当前用户
clusterId String 集群id
pageSize Number 每页条数 25
pageNum Number 第几页 1
startTime String 开始时间(天粒度,包括,格式:yyyy-MM-dd)
endTime String 截止时间(天粒度,不包括,格式:yyyy-MM-dd),为空表示至今,必须晚于startTime ""
submitterEmail String 提交人邮箱,为空表示所有提交人 ""

请求示例:

http://127.0.0.1:8080/task/v1/issue-statistic/list?product=intern&user=test01@corp.netease.com&clusterId=dev4&pageNum=1&pageSize=25&startTime=2022-11-14&endTime=""&submitterEmail=""

响应体

名称 类型 描述 必传
code Number 状态码
msg String 错误信息
cost Number 接口消耗毫秒数
reqId String 请求ID
result Pagination<TaskIssueInfo> 任务列表

响应示例:

2.4 调度

2.4.1 查询调度详情

GET /schedule/v1/detail/get

产品版本:

描述:查询调度详情

URL参数/请求体

名称 类型 描述 必填
product String 项目
user String 当前用户
clusterId String 集群id
project String 任务project标识
flow String 任务flow标识

请求示例(参数未编码,调用时请编码):

curl 'dev&flow=C\_dianxin02"">http://127.0.0.1:8080/open-api/schedule//v1/detail/get?product=intern&user=test01@corp.netease.com&clusterId=dev4&project=cad926ea77044e178c423239a874c91fdev&flow=C\_dianxin02'

响应体

名称 类型 描述 必填
code Number 状态码
msg String 错误信息
cost Number 接口消耗毫秒数
reqId String 请求ID
result ScheduleDetail 调度详情

响应示例:

{

"code": 0,

"msg": null,

"result": {

    "scheduleId": 13480,

    "project": "cad926ea77044e178c423239a874c91f",

    "flow": "C\_dianxin02",

    "flowAliasName": "C\_dianxin02",

    "crossSelfDepend": false,

    "dependSamePeriod": true,

    "periodInfo": {

        "type": "PERIOD",

        "periodValue": 1,

        "periodUnit": "DAY",

        "cron": null

    },

    "timeSetting": {

        "scheduleStartTime": 1680859500000,

        "scheduleStartTimeString": "2023-04-07 17:25:00",

        "nextExecTime": 1680859500000,

        "nextExecTimeString": "2023-04-07 17:25:00",

        "scheduleExpireTime": null,

        "scheduleExpireTimeString": ""

    },

    "status": "READY",

    "calendarInfo": {

        "calendar": "",

        "calendarName": "",

        "status": 0,

        "effectMode": ""

    },

    "scheduleDependencies": \[

        {

            "product": "intern",

            "project": "1e7ed3de841f4322aa2ae25064decd70",

            "flow": "12324222222",

            "flowAliasName": "12324222222",

            "dependentJobInfo": {

                "job": "12324222222",

                "jobAliasName": "12324222222"

            },

            "jobInfo": null,

            "offset": 0

        },

        {

            "product": "intern",

            "project": "a19780547dd548daa35434d050f24af8",

            "flow": "1111111",

            "flowAliasName": "1111111",

            "dependentJobInfo": {

                "job": "script",

                "jobAliasName": "script"

            },

            "jobInfo": {

                "job": "C\_dianxin02",

                "jobAliasName": "C\_dianxin02"

            },

            "offset": 0

        }

    \],

    "executionSetting": {

        "highPriority": true,

        "yarnId": "default",

        "yarnQueue": "intern\_new",

        "retrySetting": {

            "enable": true,

            "maxTimes": 2,

            "interval": 30000

        },

        "failureAction": "FINISH\_CURRENTLY\_RUNNING",

        "concurrentSetting": "CONCURRENT\_OPTION\_SKIP",

        "parameters": {

            "name": "test"

        }

    },

    "disableJobInfos": \[\]

},

"reqId": "b7d141fb488b44ed8cf67ed1535ce20d",

"cost": 3106

}

2.4.2 设置调度

POST /schedule/v1/set

产品版本:

描述:设置调度

URL参数/请求体

字段 类型 描述 必传
product String 项目
user String 当前用户(设置人)
clusterId String 集群
project String 任务project标识
flow String 任务flow标识,只允许传线上模式任务
periodInfo SchedulePeriodSimpleReq 调度周期信息
timeSetting scheduleTimeSettingReq 调度信息中的时间信息
calendarInfo scheduleCalendarSimpleReq 交易日日历信息
crossSelfDepend Boolean 是否开启跨周期自依赖,true:开启;false:不开启。关闭表示跨流不依赖上一周期,即各周期相互独立;开启后当前任务执行必须依赖此任务的上一周期实例
dependSamePeriod Boolean
是否开启同周期依赖,true:开启;false:不开启。当调度周期为1天且被依赖任务调度周期也为1一天时,如果配置调度日历,且调度日历和调度日历生效模式必须相同。该选项起作用。
scheduleDependencies List<DependJobSimpleReq> 调度依赖节点;当依赖flow时,传flow的虚拟节点
execSetting ExecutionSettingReq 执行设置
disableJobs List<String> 不设置调度的节点标识

请求body

{

"project":"cad926ea77044e178c423239a874c91f$$dev",

"flow":"C\_dianxin02",

"crossSelfDepend":false,

"dependSamePeriod":true,

"periodInfo":{

    "type":"PERIOD",

    "periodValue":1,

    "periodUnit":"DAY",

    "cron":"34 22 \* \* \*"

},

"timeSetting":{

    "scheduleStartTime":16560504000000,

    "scheduleExpireTime":-1

},

"calendarInfo":{

    "calendar":"sys\_sch\_hs",

    "effectMode":"currentDay"

},

"scheduleDependencies":\[

    {

        "product":"intern",

        "project":"af91385082ee46ddb3ae69cf8e64fc51$$dev",

        "flow":"TestAuthInfo",

        "dependentJob":"失败的",

        "job":"trigger\_node",

        "offset":0

    }

\],

"execSetting":{

    "yarnId":"default",

    "yarnFullQueue":"default.intern\_new.sla",

    "retrySetting":{

        "enable":true,

        "maxTimes":3,

        "interval":3000

    },

    "failureAction":"FINISH\_ALL\_POSSIBLE",

    "concurrentSetting":"CONCURRENT\_OPTION\_IGNORE",

    "parameters":{

        "name":"swp"

    }

},

"disableJobs":\[

    "C\_dianxin02"

\],

"product":"intern",

"user":"test01@corp.netease.com",

"clusterId":"dev4"

}

响应体

名称 类型 描述 必传
code Number 状态码
msg String 错误信息
cost Number 接口消耗毫秒数
reqId String 请求ID
result Number 调度id

响应示例:

{

"code": 0,

"msg": null,

"result": 13482,

"reqId": "ab125cf8f7764879a65922d68d5baa4b",

"cost": 2492

}

2.4.3 更新调度

POST /schedule/v1/update

产品版本:

描述:更新调度

URL参数/请求体

字段 类型 描述 必填
scheduleId Number 调度id
product String 项目
user String 当前用户(设置人)
clusterId String 集群
project String 任务project标识
flow String 任务flow标识
periodInfo SchedulePeriodSimpleReq 调度周期信息
timeSetting ScheduleTimeSettingReq 调度信息中的时间信息
calendarInfo ScheduleCalendarSimpleReq 交易日日历信息
crossSelfDepend Boolean
是否开启跨周期自依赖,true:开启;false:不开启。
关闭表示跨流不依赖上一周期,即各周期相互独立;开启后当前任务执行必须依赖此任务的上一周期实例
dependSamePeriod Boolean 是否开启同周期依赖,true:开启;false:不开启。
当调度周期为1天且被依赖任务调度周期也为1一天时,如果配置调度日历,且调度日历和调度日历生效模式必须相同。该选项起作用。
scheduleDependencies List<DependJobSimpleReq> 调度依赖节点
execSetting ExecutionSettingReq 执行设置
disableJobs List<String> 不设置调度的节点标识

请求body

{

"scheduleId":13482,

"project":"cad926ea77044e178c423239a874c91f$$dev",

"flow":"C\_dianxin02",

"crossSelfDepend":false,

"dependSamePeriod":true,

"periodInfo":{

    "type":"PERIOD",

    "periodValue":1,

    "periodUnit":"DAY",

    "cron":"34 22 \* \* \*"

},

"timeSetting":{

    "scheduleStartTime":16560504000000,

    "scheduleExpireTime":-1

},

"calendarInfo":{

    "calendar":"sys\_sch\_hs",

    "effectMode":"currentDay"

},

"scheduleDependencies":\[

    {

        "product":"intern",

        "project":"af91385082ee46ddb3ae69cf8e64fc51$$dev",

        "flow":"TestAuthInfo",

        "dependentJob":"失败的",

        "job":"trigger\_node",

        "offset":0

    }

\],

"execSetting":{

    "yarnId":"default",

    "yarnFullQueue":"default.intern\_new.sla",

    "retrySetting":{

        "enable":true,

        "maxTimes":3,

        "interval":3000

    },

    "failureAction":"FINISH\_ALL\_POSSIBLE",

    "concurrentSetting":"CONCURRENT\_OPTION\_IGNORE",

    "parameters":{

        "name":"swp"

    }

},

"disableJobs":\[

    "C\_dianxin02"

\],

"product":"intern",

"user":"sunweipeng01@corp.netease.com",

"clusterId":"dev4"

}

响应体

名称 类型 描述 必传 默认值
code Number 状态码
msg String 错误信息
cost Number 接口消耗毫秒数
reqId String 请求ID
result Object 响应结果

响应示例:

{

"code": 0,

"msg": null,

"result": 13482,

"reqId": "ab125cf8f7764879a65922d68d5baa4b",

"cost": 2492

}

2.4.4 取消调度

POST /schedule/v1/cancel

产品版本:

描述:取消调度

URL参数/请求体

字段 类型 描述
user String 当前用户
product String 项目
clusterId String 集群
project String 任务project标识
flow String 任务flow标识

请求body

{

"product":"intern",

"user":"test01@corp.netease.com",

"clusterId":"dev4",

"project":"cad926ea77044e178c423239a874c91f$$dev",

"flow":"C\_dianxin02"

}

响应体

名称 类型 描述 必传
code Number 状态码
msg String 错误信息
cost Number 接口消耗毫秒数
reqId String 请求ID
result Object 响应结果