- 1.Linkis接口规范
- 2.HTTP接口汇总
- 3.接口详解
- 1).提交执行
- 2).获取状态
- 3).获取日志
- 4).获取进度
- 5).kill任务
- 6)系统用户代理设置
Linkis 提供了方便的HTTP接口方便前端上层应用或者后台通过Restful接口进行调用
1.Linkis接口规范
Linkis在前后端进行交互的时候,定义了一套自己的接口规范。
如果您对接口规范感兴趣,请点击这里查看接口规范
2.HTTP接口汇总
我们提供以下几个接口,方便用户快速提交执行Job,获取执行结果。
提交执行
获取状态
获取日志
获取进度
Kill任务
3.接口详解
1).提交执行
接口
/api/rest_j/entrance/execute提交方式
POST
{"method":"/api/rest_j/v1/entrance/execute","data":{"params": {"variable":{"k1":"v1"},"configuration":{"special":{"k2":"v2"},"runtime":{"k3":"v3"},"startup":{"k4":"v4"}}},"executeApplicationName":"spark","executionCode":"show tables","runType":"sql","source":{"scriptPath": "/home/Linkis/Linkis.sql"},"websocketTag":"37fcbd8b762d465a0c870684a0261c6e"}}
- 请求体data中的参数描述如下
| 参数名 | 参数定义 | 类型 | 备注 |
|---|---|---|---|
| executeApplicationName | 用户所期望使用的引擎服务,如Spark、hive等 | String | 不可为空 |
| requestApplicationName | 发起请求的系统名 | String | 可以为空 |
| params | 用户指定的运行服务程序的参数 | Map | 必填,里面的值可以为空 |
| executionCode | 用户提交的执行代码 | String | 不可为空 |
| runType | 当用户执行如spark服务时,可以选择python、R、SQL等runType | String | 不可为空 |
| scriptPath | 用户提交代码脚本的存放路径 | String | 如果是IDE的话,与executionCode不能同时为空 |
表1 请求体参数描述
- 返回示例
{"method": "/api/rest_j/v1/entrance/execute","status": 0,"message": "请求执行成功","data": {"execID": "030418IDEhivebdpdwc010004:10087IDE_johnnwang_21","taskID": "123"}}
- execID是用户任务提交到UJES之后,为该任务生成的唯一标识的执行ID,为String类型,这个ID只在任务运行时有用,类似PID的概念。ExecID的设计为(requestApplicationName长度)(executeAppName长度1)(Instance长度2)${requestApplicationName}${executeApplicationName}${entranceInstance信息ip+port}${requestApplicationName}${umUser}${index}
- taskID 是表示用户提交task的唯一ID,这个ID由数据库自增生成,为Long 类型
2).获取状态
接口
/api/rest_j/entrance/${execID}/status提交方式
GET返回示例
{"method": "/api/rest_j/v1/entrance/{execID}/status","status": 0,"message": "获取状态成功","data": {"execID": "${execID}","status": "Running"}}
3).获取日志
接口
/api/rest_j/entrance/${execID}/log?fromLine=${fromLine}&size=${size}提交方式
GET请求参数fromLine是指从第几行开始获取,size是指该次请求获取几行日志
返回示例,其中返回的fromLine需要下次日志请求的参数
{"method": "/api/rest_j/v1/entrance/${execID}/log","status": 0,"message": "返回日志信息","data": {"execID": "${execID}","log": ["error日志","warn日志","info日志", "all日志"],"fromLine": 56}}
4).获取进度
接口
/api/rest_j/entrance/${execID}/progress提交方式
GET返回示例
{"method": "/api/rest_j/v1/entrance/{execID}/progress","status": 0,"message": "返回进度信息","data": {"execID": "${execID}","progress": 0.2,"progressInfo": [{"id": "job-1","succeedTasks": 2,"failedTasks": 0,"runningTasks": 5,"totalTasks": 10},{"id": "job-2","succeedTasks": 5,"failedTasks": 0,"runningTasks": 5,"totalTasks": 10}]}}
5).kill任务
接口
/api/rest_j/entrance/${execID}/kill提交方式
POST返回示例,其中返回的fromLine需要下次日志请求的参数
{"method": "/api/rest_j/v1/entrance/{execID}/kill","status": 0,"message": "OK","data": {"execID":"${execID}"}}
6)系统用户代理设置
gateway代理设置
在gateway安装目录conf中修改proxy.properties文件,添加内容: token=user1,user2
说明:token为给到系统用户的秘钥,右边为系统用户可以代理的其它用户,如token=*,则不限制用户。
http请求代理设置
在请求的Headers参数中添加两个参数设置
Proxy-User = 代理用户xxxValidation-Code = gateway配置的系统token
