> For the complete documentation index, see [llms.txt](https://tarscloud.gitbook.io/tarsdocs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tarscloud.gitbook.io/tarsdocs/kai-yuan-ban-kuang-jia-jie-shao/kai-yuan-ban-guan-li-ping-tai/tars-web-api.md).

# web管理平台 API

> * [Auth](#auth)
> * [业务树](#tree)
> * [服务管理](#server)
> * * [部署服务](#deploy-server)
> * * [修改服务](#modify-server)
> * * [取服务](#get-server)
> * * [取服务列表](#get-server-list)
> * * [取设置状态为inactive的服务列表](#get-inactive)
> * * [取服务notify日志列表](#get-notify-server)
> * * [取服务实时状态](#get-server-status)
> * * [加载服务](#load-server)
> * * [预扩容](#pre-expand)
> * * [扩容](#expand)
> * * [新增Adapter](#add-adapter)
> * * [删除Adapter](#delete-adapter)
> * * [修改Adapter](#modify-adapter)
> * * [取Adapter](#get-adapter)
> * * [取Adapter列表](#get-adapter-list)
> * [服务配置](#config)
> * * [新增配置文件](#add-config)
> * * [删除配置文件](#del-config)
> * * [修改配置文件](#modify-config)
> * * [取配置文件](#get-config)
> * * [取配置文件列表](#get-config-list)
> * * [取节点配置文件列表](#get-node-config-list)
> * * [取配置文件修改记录](#get-config-modify-history)
> * * [取配置文件修改记录列表](#get-config-modify-list)
> * * [新增引用](#add-ref)
> * * [删除引用](#del-ref)
> * * [引用列表](#ref-list)
> * * [合并后节点配置](#merge-node-config)
> * * [下发节点配置](#push-config)
> * [任务管理](#task)
> * * [新增任务](#add-task)
> * * [取任务及子任务详细信息](#get-task)
> * * [取任务列表](#get-task-list)
> * [发布包](#publish)
> * * [上传发布包](#upload-publish)
> * * [上传并发布](#upload-and-publish)
> * * [取发布版本列表](#get-publish-list)
> * [模板](#template)
> * * [新增模板](#add-template)
> * * [删除模板](#del-template)
> * * [修改模板](#modify-template)
> * * [取模板](#get-template)
> * * [查询模板](#query-template)
> * [监控](#monitor)
> * * [取tarsstat监控数据](#get-tarsstat)
> * * [取tarsproperty监控数据](#get-tarspropery)
> * [字典](#dict)
> * * [取服务类型列表](#get-server-type)
> * * [取模板列表](#get-template-list)
> * * [级联选择服务](#choose-server)
> * [资源](#resource)
> * * [安装Tars Node](#install-tarsnode)
> * * [卸载Tars Node](#uninstall-tarsnode)
> * [其他](#other)
> * * [发送自定义命令](#send-command)
> * * [自动获取未被占用的端口](#get-port)

## 权限说明

请使用web >= 2.0.0 版本

在用户中心中新建token, 获取token后方可使用web api.

web api使用方式如下:

```
http://xx.xx.xx.xx/api/[command]?ticket=[token]

```

ticket: web平台中生成的token

## 业务树

/api/tree

取业务树

#### 参数

无

#### 返回值

```
{
    "id": "",                  // 节点ID
    "name": "",                // 节点名称
    "pid": "",                 // 父节点ID
    "open": true,              // 是否展开
    "is_parent": true,         // 是否父节点
    "children": []             // 子节点
}
```

## 服务管理

### 部署服务

/api/deploy\_server

#### 参数

```
{                                  
    "application": "",             // 应用
    "server_name": "",             // 服务
    "node_name": "",               // 节点
    "server_type": "",             // 服务类型
    "template_name": "",           // 模板名
    "enable_set": true,            // 是否启用Set
    "set_name": "",                // Set名
    "set_area": "",                // Set区
    "set_group": "",               // Set组
    "adapters": [{ 
        "obj_name": "",            // OJB名称
        "bind_ip": "",             // Obj绑定IP
        "port": "",                // 端口
		"port_type": "tcp",        // 端口类型
		"protocol": "tars",        // 协议
        "thread_num": 0,           // 线程数
        "max_connections": 0,      // 最大连接数
        "queuecap": 0,             // 队列最大长度
        "queuetimeout": 0          // 队列超时时间
    }]                             
}
```

#### 返回值

```
{
	"server_conf": {          //新上线服务信息                        
		"id": 0,                   // 服务ID
		"application": "",         // 应用
		"server_name": "",         // 服务
		"node_name": "",           // 节点
		"server_type": "",         // 服务类型
		"enable_set": true,        // 是否启用Set
		"set_name": "",            // Set名
		"set_area": "",            // Set区
		"set_group": "",           // Set组
		"setting_state": "",       // 设置状态
		"present_state": "",       // 当前状态
		"bak_flag": true,          // 是否备机
		"template_name": "",       // 模板名称
		"profile": "",             // 私有模板
		"async_thread_num": 0,     // 异步线程数
		"base_path": "",           // 缺省路径
		"exe_path": "",            // EXE路径
		"start_script_path": "",   // 启动脚本
		"stop_script_path": "",    // 停止脚本
		"monitor_script_path": "", // 监控脚本
		"patch_time": "",          // 发布时间
		"patch_version", "",       // 发布版本
		"process_id": "",          // 进程ID
		"posttime": ""             // 更新时间
	},
	"tars_node_rst":[   //tarsnode安装结果，若不启用资源模块，则此数据为空
		{
			"ip":"1.1.1.3",  //机器IP
			"rst":false,//安装tarsnode结果
			"msg":"未找到机器配置" //安装结果信息
		}
	]
}
```

#### 备注

只支持POST方式，Header中指定Content-Type:application/json

### 修改服务

/api/update\_server

#### 参数

```
{
	"id": 0,                  // 服务ID
	"isBak": true,            // 是否备机
	"template_name": "",      // 模板名称
	"server_type": "",        // 服务类型
	"enable_set": "",         // 是否启用Set
	"set_name": "",           // Set名
	"set_area": "",           // Set区
	"set_group": "",          // Set组
	"async_thread_num": 0,    // 异步线程数
	"base_path": "",          // 缺省路径
	"exe_path": "",           // EXE路径
	"start_script_path": "",  // 启动脚本
	"stop_script_path": "",   // 停止脚本
	"monitor_script_path": "",// 监控脚本
	"profile": ""             // 私有模板
}
```

#### 返回值

```
{
    "id": 0,                   // 服务ID
    "application": "",         // 应用
    "server_name": "",         // 服务
    "node_name": "",           // 节点
    "server_type": "",         // 服务类型
    "enable_set": true,        // 是否启用Set
    "set_name": "",            // Set名
    "set_area": "",            // Set区
    "set_group": "",           // Set组
    "setting_state": "",       // 设置状态
    "present_state": "",       // 当前状态
    "bak_flag": true,          // 是否备机
    "template_name": "",       // 模板名称
    "profile": "",             // 私有模板
    "async_thread_num": 0,     // 异步线程数
    "base_path": "",           // 缺省路径
    "exe_path": "",            // EXE路径
    "start_script_path": "",   // 启动脚本
    "stop_script_path": "",    // 停止脚本
    "monitor_script_path": "", // 监控脚本
    "patch_time": "",          // 发布时间
    "patch_version", "",       // 发布版本
    "process_id": "",          // 进程ID
    "posttime": ""             // 更新时间
}
```

#### 备注

只支持POST方式，Header中指定Content-Type:application/json

### 取服务

/api/server

#### 参数

```
id // 服务ID
```

#### 返回值

```
{
    "id": 0,                   // 服务ID
    "application": "",         // 应用
    "server_name": "",         // 服务
    "node_name": "",           // 节点
    "server_type": "",         // 服务类型
    "enable_set": true,        // 是否启用Set
    "set_name": "",            // Set名
    "set_area": "",            // Set区
    "set_group": "",           // Set组
    "setting_state": "",       // 设置状态
    "present_state": "",       // 当前状态
    "bak_flag": true,          // 是否备机
    "template_name": "",       // 模板名称
    "profile": "",             // 私有模板
    "async_thread_num": 0,     // 异步线程数
    "base_path": "",           // 缺省路径
    "exe_path": "",            // EXE路径
    "start_script_path": "",   // 启动脚本
    "stop_script_path": "",    // 停止脚本
    "monitor_script_path": "", // 监控脚本
    "patch_time": "",          // 发布时间
    "patch_version", "",       // 发布版本
    "process_id": "",          // 进程ID
    "posttime": ""             // 更新时间
}
```

### 取服务列表

/api/server\_list

#### 参数

```
tree_node_id // 树节点ID
```

#### 返回值

```
[{
    "id": 0,                   // 服务ID
    "application": "",         // 应用
    "server_name": "",         // 服务
    "node_name": "",           // 节点
    "server_type": "",         // 服务类型
    "enable_set": true,        // 是否启用Set
    "set_name": "",            // Set名
    "set_area": "",            // Set区
    "set_group": "",           // Set组
    "setting_state": "",       // 设置状态
    "present_state": "",       // 当前状态
    "bak_flag": true,          // 是否备机
    "template_name": "",       // 模板名称
    "profile": "",             // 私有模板
    "async_thread_num": 0,     // 异步线程数
    "base_path": "",           // 缺省路径
    "exe_path": "",            // EXE路径
    "start_script_path": "",   // 启动脚本
    "stop_script_path": "",    // 停止脚本
    "monitor_script_path": "", // 监控脚本
    "patch_time": "",          // 发布时间
    "patch_version": "",       // 发布版本
    "process_id": "",          // 进程ID
    "posttime": ""             // 更新时间
}]
```

### 取设置状态为inactive的服务列表

/api/inactive\_server\_list

#### 参数

```
application // 应用
server_name // 服务
node_name   // 节点
```

#### 返回值

```
[{
    "id": 0,                   // 服务ID
    "application": "",         // 应用
    "server_name": "",         // 服务
    "node_name": "",           // 节点
    "server_type": "",         // 服务类型
    "enable_set": true,        // 是否启用Set
    "set_name": "",            // Set名
    "set_area": "",            // Set区
    "set_group": "",           // Set组
    "setting_state": "",       // 设置状态
    "present_state": "",       // 当前状态
    "bak_flag": true,          // 是否备机
    "template_name": "",       // 模板名称
    "profile": "",             // 私有模板
    "async_thread_num": 0,     // 异步线程数
    "base_path": "",           // 缺省路径
    "exe_path": "",            // EXE路径
    "start_script_path": "",   // 启动脚本
    "stop_script_path": "",    // 停止脚本
    "monitor_script_path": "", // 监控脚本
    "patch_time": "",          // 发布时间
    "patch_version": "",       // 发布版本
    "process_id": "",          // 进程ID
    "posttime": ""             // 更新时间
}]
```

### 取服务notify日志列表

/api/server\_notify\_list

#### 参数

```
tree_node_id // 树节点ID
```

#### 返回值

```
{
    "count": 0,
    "rows":[{
        "notifytime": "",          // 时间
        "server_id": "",           // 服务ID
        "thread_id": "",           // 线程ID
        "command": "",             // 命令
        "result": ""               // 结果
    }]
}
```

#### 是否支持分页

是

### 取服务实时状态

/api/get\_realtime\_state

#### 参数

```
id // 服务ID
```

#### 返回值

```
{
    "realtime_state": ""       // 实时状态
}
```

### 加载服务

/api/load\_server

#### 参数

```
application  // 应用
server_name  // 服务
node_name    // 节点
```

#### 返回值

```
"" // 执行结果
```

### 预扩容

/api/expand\_server\_preview

#### 参数

```
{
    "application": "",        // 应用
    "server_name": "",        // 服务
    "set": "",                // Set
    "node_name": "",          // 节点
    "expand_nodes": [""],     // 扩容节点
    "enable_set": true,       // 是否启用Set
    "set_name": "",           // Set名
    "set_area": "",           // Set区    
    "set_group": "",          // Set组
    "copy_node_config": true  // node_name非空时是否复制节点配置
}
```

#### 返回值

```
[{
    "application": "",        // 应用
    "server_name": "",        // 服务
    "set": "",                // Set
    "obj_name": "",           // OBJ名称
    "node_name": "",          // 节点
    "bind_ip": "",            // Obj绑定IP
    "port": 0,                // 端口
    "template_name": "",      // 模板名
    "status": "",             // 状态
}]
```

#### 备注

只支持POST方式，Header中指定Content-Type:application/json

### 扩容

/api/expand\_server

#### 参数

```
{
    "application": "",            // 应用
    "server_name": "",            // 服务
    "set": "",                    // Set
    "node_name": "",              // 节点
    "copy_node_config": true，    // node_name非空时是否复制节点配置
    "expand_preview_servers": [{
        "node_name": "",          // 节点
        "set": "",                // Set
        "obj_name": "",           // OBJ名称
        "bind_ip": "",            // Obj绑定IP
        "port": 0                 // 端口
    }]
}
```

#### 返回值

```
{
		"server_conf": {          //新上线服务信息  
			[{                                  
				"id": 0,                   // 服务ID
				"application": "",         // 应用
				"server_name": "",         // 服务
				"node_name": "",           // 节点
				"server_type": "",         // 服务类型
				"enable_set": true,        // 是否启用Set
				"set_name": "",            // Set名
				"set_area": "",            // Set区
				"set_group": "",           // Set组
				"setting_state": "",       // 设置状态
				"present_state": "",       // 当前状态
				"bak_flag": true,          // 是否备机
				"template_name": "",       // 模板名称
				"profile": "",             // 私有模板
				"async_thread_num": 0,     // 异步线程数
				"base_path": "",           // 缺省路径
				"exe_path": "",            // EXE路径
				"start_script_path": "",   // 启动脚本
				"stop_script_path": "",    // 停止脚本
				"monitor_script_path": "", // 监控脚本
				"patch_time": "",          // 发布时间
				"patch_version", "",       // 发布版本
				"process_id": "",          // 进程ID
				"posttime": ""             // 更新时间
			}]
		},
		"tars_node_rst":[   //tarsnode安装结果，若不启用资源模块，则此数据为空
			{
				"ip":"1.1.1.3",  //机器IP
				"rst":false,//安装tarsnode结果
				"msg":"未找到机器配置" //安装结果信息
			}
		]
}
```

#### 备注

只支持POST方式，Header中指定Content-Type:application/json

### 新增Adapter

/api/add\_adapter\_conf

#### 参数

```
{
	"application": "",         // 应用
	"server_name": "",         // 服务
	"node_name": "",           // 节点
	"thread_num": 1,           // 线程数
	"endpoint": "",            // EndPoint
	"max_connections": 0,      // 最大连接数
	"allow_ip": "",            // 允许IP
	"servant": "",             // Servant
	"queuecap": 0,             // 队列长度
	"queuetimeout": 0,         // 队列超时时间
	"protocol": "",            // 协议
	"handlegroup": ""          // 处理组
}
```

#### 返回值

```
{
	"id": 0,                   // Adapter ID
	"application": "",         // 应用
	"server_name": "",         // 服务
	"node_name": "",           // 节点
	"adapter_name": "",        // Adapter名
	"thread_num": 1,           // 线程数
	"endpoint": "",            // EndPoint
	"max_connections": 0,      // 最大连接数
	"allow_ip": "",            // 允许IP
	"servant": "",             // Servant
	"queuecap": 0,             // 队列长度
	"queuetimeout": 0,         // 队列超时时间
	"posttime": "",            // 更新时间
	"protocol": "",            // 协议
	"handlegroup": ""          // 处理组
}
```

#### 备注

只支持POST方式，Header中指定Content-Type:application/json

### 删除Adapter

/api/delete\_adapter\_conf

#### 参数

```
id // Adapter ID
```

#### 返回值

```
[0] // 删除的Adapter ID
```

### 修改Adapter

/api/update\_adapter\_conf

#### 参数

```
{
	"id": 0,                   // Adapter ID
	"thread_num": 1,           // 线程数
	"endpoint": "",            // EndPoint
	"max_connections": 0,      // 最大连接数
	"allow_ip": "",            // 允许IP
	"servant": "",             // Servant
	"queuecap": 0,             // 队列长度
	"queuetimeout": 0,         // 队列超时时间
	"protocol": "",            // 协议
	"handlegroup": ""          // 处理组
}
```

#### 返回值

```
{
    "id": 0,                   // Adapter ID
    "application": "",         // 应用
    "server_name": "",         // 服务
    "node_name": "",           // 节点
    "adapter_name": "",        // Adapter名
    "thread_num": 1,           // 线程数
    "endpoint": "",            // EndPoint
    "max_connections": 0,      // 最大连接数
    "allow_ip": "",            // 允许IP
    "servant": "",             // Servant
    "queuecap": 0,             // 队列长度
    "queuetimeout": 0,         // 队列超时时间
    "posttime": "",            // 更新时间
    "protocol": "",            // 协议
    "handlegroup": ""          // 处理组
}
```

#### 备注

只支持POST方式，Header中指定Content-Type:application/json

### 取Adapter

/api/adapter\_conf

#### 参数

```
id // Adapter ID
```

#### 返回值

```
{
    "id": 0,                   // Adapter ID
    "application": "",         // 应用
    "server_name": "",         // 服务
    "node_name": "",           // 节点
    "adapter_name": "",        // Adapter名
    "thread_num": 1,           // 线程数
    "endpoint": "",            // EndPoint
    "max_connections": 0,      // 最大连接数
    "allow_ip": "",            // 允许IP
    "servant": "",             // Servant
    "queuecap": 0,             // 队列长度
    "queuetimeout": 0,         // 队列超时时间
    "posttime": "",            // 更新时间
    "protocol": "",            // 协议
    "handlegroup": ""          // 处理组
}
```

### 取Adapter列表

/api/adapter\_conf\_list

#### 参数

```
id // 服务ID
```

#### 返回值

```
[{
    "id": 0,                   // Adapter ID
    "application": "",         // 应用
    "server_name": "",         // 服务
    "node_name": "",           // 节点
    "adapter_name": "",        // Adapter名
    "thread_num": 1,           // 线程数
    "endpoint": "",            // EndPoint
    "max_connections": 0,      // 最大连接数
    "allow_ip": "",            // 允许IP
    "servant": "",             // Servant
    "queuecap": 0,             // 队列长度
    "queuetimeout": 0,         // 队列超时时间
    "posttime": "",            // 更新时间
    "protocol": "",            // 协议
    "handlegroup": ""          // 处理组
}]
```

## 服务配置

### 新增配置文件

/api/add\_config\_file

#### 参数

```
{
    "level": 1,         // 层级
    "application": "",  // 应用
    "server_name": "",  // 服务
    "node_name": "",    // 节点
    "set_name": "",     // Set名
    "set_area": "",     // Set取
    "set_group": "",    // Set组
    "filename": "",     // 文件名
    "config": ""        // 文件内容
}
```

#### 返回值

```
{
    "id": 0,            // 配置文件ID
    "server_name": "",  // 服务
    "node_name": "",    // 节点
    "set_name": "",     // Set名
    "set_area": "",     // Set取
    "set_group": "",    // Set组
    "filename": "",     // 文件名
    "config": "",       // 文件内容
    "level": 1,         // 层级，1：应用或Set，2：服务，3：节点
    "posttime": "",     // 更新时间
}
```

### 删除配置文件

/api/delete\_config\_file

#### 参数

```
id // 配置文件ID
```

#### 返回值

```
[0] // 删除的配置文件ID
```

### 修改配置文件

/api/update\_config\_file

#### 参数

```
{
    "id": 0,            // 配置文件ID
    "config": "",       // 文件内容
    "reason": ""        // 备注
}
```

#### 返回值

```
{
    "id": 0,            // 配置文件ID
    "server_name": "",  // 服务
    "node_name": "",    // 节点
    "set_name": "",     // Set名
    "set_area": "",     // Set取
    "set_group": "",    // Set组
    "filename": "",     // 文件名
    "config": "",       // 文件内容
    "level": 1,         // 层级，1：应用或Set，2：服务，3：节点
    "posttime": "",     // 更新时间
}
```

#### 备注

只支持POST方式，Header中指定Content-Type:application/json

### 取配置文件

/api/config\_file

#### 参数

```
id // 配置文件ID
```

#### 返回值

```
{
    "id": 0,            // 配置文件ID
    "server_name": "",  // 服务
    "node_name": "",    // 节点
    "set_name": "",     // Set名
    "set_area": "",     // Set取
    "set_group": "",    // Set组
    "filename": "",     // 文件名
    "config": "",       // 文件内容
    "level": 1,         // 层级，1：应用或Set，2：服务，3：节点
    "posttime": "",     // 更新时间
}
```

### 取配置文件列表

/api/config\_file\_list

#### 参数

```
level       // 层级,1:应用，2：Set名，3：Set区，4：Set组，5：服务
application // 应用
server_name // 服务
set_name    // Set名
set_area    // Set区
set_group   // Set组
```

#### 返回值

```
[{
    "id": 0,            // 配置文件ID
    "server_name": "",  // 服务
    "node_name": "",    // 节点
    "set_name": "",     // Set名
    "set_area": "",     // Set取
    "set_group": "",    // Set组
    "filename": "",     // 文件名
    "config": "",       // 文件内容
    "level": 1,         // 层级，1：应用或Set，2：服务，3：节点
    "posttime": "",     // 更新时间
}]
```

### 取节点配置文件列表

/api/node\_config\_file\_list

#### 参数

```
application // 应用
server_name // 服务
set_name    // Set名
set_area    // Set区
set_group   // Set组
config_id   // 配置文件ID
```

#### 返回值

```
[{
    "id": 0,            // 配置文件ID
    "server_name": "",  // 服务
    "node_name": "",    // 节点
    "set_name": "",     // Set名
    "set_area": "",     // Set取
    "set_group": "",    // Set组
    "filename": "",     // 文件名
    "config": "",       // 文件内容
    "level": 1,         // 层级，1：应用或Set，2：服务，3：节点
    "posttime": "",     // 更新时间
}]
```

#### 备注

只支持POST方式，Header中指定Content-Type:application/json

### 取配置文件修改记录

server/api/config\_file\_history

#### 参数

```
id  // 变更记录ID
```

#### 返回值

```
{
    "id": "",        // 变更记录ID
    "config_id": "", // 配置文件ID
    "reason": "",    // 备注
    "content": "",   // 变更内容
    "posttime": "",  // 更新时间
}
```

### 取配置文件修改记录列表

server/api/config\_file\_history\_list

#### 参数

```
config_id // 配置文件ID
```

#### 返回值

```
{
    "count":0,
    "rows":[{
        "id": "",        // 变更记录ID
        "config_id": "", // 配置文件ID
        "reason": "",    // 备注
        "content": "",   // 变更内容
        "posttime": "",  // 更新时间
    }]
}
```

#### 是否支持分页

是

### 新增引用

server/api/add\_config\_ref

#### 参数

```
config_id    // 配置文件ID
reference_id // 引用配置文件ID
```

#### 返回值

```
{
    "id": "",           // 引用ID
    "config_id": "",    // 配置文件ID
    "reference_id": ""  // 引用配置文件ID
}
```

### 删除引用

/api/delete\_config\_ref

#### 参数

```
id // 引用ID
```

#### 返回值

```
[0] // 删除的引用ID
```

### 引用列表

/api/config\_ref\_list

#### 参数

```
config_id // 配置文件ID
```

#### 返回值

```
[{
    "id": 0,                // 引用ID
    "config_id": 0,         // 配置文件ID
    "reference": {
        "id": 0,            // 配置文件ID
        "server_name": "",  // 服务
        "node_name": "",    // 节点
        "set_name": "",     // Set名
        "set_area": "",     // Set取
        "set_group": "",    // Set组
        "filename": "",     // 文件名
        "config": "",       // 文件内容
        "level": 1,         // 层级，1：应用或Set，2：服务，3：节点
        "posttime": "",     // 更新时间
    }
}]
```

### 合并后节点配置

/api/merged\_node\_config

#### 参数

```
id // 配置文件ID
```

#### 返回值

```
"" // 配置文件内容
```

### 下发节点配置

/api/push\_config\_file

#### 参数

```
ids // 配置文件ID，用;分隔
```

#### 返回值

```
[{
    "application": "",    // 应用
    "server_name": "",    // 服务
    "node_name": "",      // 节点
    "ret_code": 0,        // 执行结果，0成功
    "err_msg": ""         // 错误信息
}]
```

## 任务管理

> 涵盖启动、停止、发布、下线

### 新增任务

/api/add\_task

#### 参数

```
{
    "serial": true, // 是否串行
    "items": [{
        "server_id": "",    // 服务
        "command": "",     // 命令字
        "parameters": {     // 参数
        }
    }]
}

命令字包括restart，stop，undeploy_tars，patch_tars
当command!=patch_tars时，parameter为空
当command=patch_tars时，parameter格式为
{
    patch_id: "0",    // 版本号
    update_text: "",  // 备注
    bak_flag: true    // 备机标识，true：备机，false：主机
}
```

#### 返回值

```
""  // 任务ID
```

#### 备注

只支持POST方式，Header中指定Content-Type:application/json

### 取任务及子任务详细信息

/api/task

#### 参数

```
task_no // 任务ID
```

#### 返回值

```
{
    "task_no": "",               // 任务ID
    "serial": true,              // 是否串行
    "status": 0,                 // 任务状态
    "items":[{
        "task_no": "",
        "item_no": "",           // 子任务ID
        "application": "",       // 应用
        "server_name": "",       // 服务
        "node_name": "",         // 节点
        "command": "",           // 命令
        "parameters": {},        // 参数
        "start_time": "",        // 开始时间
        "end_time": "",          // 结束时间
        "status": "",            // 子任务状态
        "status_info": "",       // 状态信息
        "execute_info": ""       // 执行信息
    }]
}
// 如果用了kafka，当任务还在排队时只会返回{status:0}
```

####

### 取任务列表

/api/task\_list

#### 参数

```
application // 应用
server_name // 服务
command     // 命令
from        // 开始日期
to          // 结束日期
```

#### 返回值

```
[{
    "task_no": "",               // 任务ID
    "serial": true,              // 是否串行
    "status": 0,                 // 任务状态
    "items":[{
        "task_no": "",
        "item_no": "",           // 子任务ID
        "application": "",       // 应用
        "server_name": "",       // 服务
        "node_name": "",         // 节点
        "command": "",           // 命令
        "parameters": {},        // 参数
        "start_time": "",        // 开始时间
        "end_time": "",          // 结束时间
        "status": "",            // 子任务状态
        "status_info": "",       // 状态信息
        "execute_info": ""       // 执行信息
    }]
}]
```

## 发布包

### 上传发布包

/api/upload\_patch\_package

#### 参数

```
application // 应用
module_name // 模块名
comment     // 备注
suse        // 发布包上传组件名称
task_id     // 任务ID（可用时间戳）
md5         // 发布包的md5值（不填则不校验）
```

#### 返回值

```
{
    "id": 0,        // 发布包ID
    "server": "",   // 服务，应用+模块名
    "tgz": "",      // 发布包名称
    "comment": "",  // 备注
    "posttime": ""  // 更新时间
}
```

### 上传并发布

/api/upload\_and\_publish

#### 参数

```
application // 应用
module_name // 模块名
comment     // 备注
suse        // 发布包上传组件名称
```

#### 返回值

```
msg
```

#### 示例(使用curl)

```
curl http://${TARS_WEB_HOST}/api/upload_and_publish?ticket=${TARS_TOKEN} -Fsuse=@${TARGET}.tgz -Fapplication=${APP} -Fmodule_name=${ServerName} -Fcomment=developer-auto-upload
```

### 取发布版本列表

/api/server\_patch\_list

#### 参数

```
application // 应用
module_name // 模块名
```

#### 返回值

```
{
    "count":0,
    "rows":[{
        "id": 0,        // 发布包ID
        "server": "",   // 服务，应用+模块名
        "tgz": "",      // 发布包名称
        "comment": "",  // 备注
        "posttime": ""  // 更新时间
    }]
}
```

#### 是否支持分页

是

## 模板

### 新增模板

server/api/add\_profile\_template

#### 参数

```
{
	"template_name": "",      // 必填，模板名称
	"parents_name": "",       // 必填，父模板
	"profile": ""             // 必填，模板内容
}
```

#### 返回值

```
{
	"id": 0,                  // 模板ID
	"template_name": "",      // 模板名称
	"parents_name": "",       // 父模板
	"profile": "",            // 模板内容
	"posttime": ""            // 更新时间
}
```

### 删除模板

/api/delete\_profile\_template

#### 参数

```
id  // 模板ID
```

#### 返回值

```
[0] // 删除的模板ID
```

### 修改模板

server/api/update\_profile\_template

#### 参数

```
{
	"id": "",                 // 必填，模板ID
	"template_name": "",      // 必填，模板名称
	"parents_name": "",       // 必填，父模板
	"profile": ""             // 必填，模板内容
}
```

#### 返回值

```
{
	"id": 0,                  // 模板ID
	"template_name": "",      // 模板名称
	"parents_name": "",       // 父模板
	"profile": "",            // 模板内容
	"posttime": ""            // 更新时间
}
```

### 取模板

/api/profile\_template

#### 参数

```
template_name // 模板名称
```

#### 返回值

```
{
	"id": 0,                  // 模板ID
	"template_name": "",      // 模板名称
	"parents_name": "",       // 父模板
	"profile": "",            // 模板内容
	"posttime": ""            // 更新时间
}
```

### 查询模板

/api/query\_profile\_template

#### 参数

```
template_name  // 模板名称
parents_name   // 父模板名称
```

#### 返回值

```
[{
	"id": 0,                  // 模板ID
	"template_name": "",      // 模板名称
	"parents_name": "",       // 父模板
	"profile": "",            // 模板内容
	"posttime": ""            // 更新时间
}]
```

## 监控

### 取tarsstat监控数据

/api/tarsstat\_monitor\_data

#### 参数

```
thedate         // 显示日期
predate         // 对比日期
startshowtime   // 开始时间
endshowtime     // 结束时间
master_name     // 主调
slave_name      // 被调
interface_name  // 接口名
master_ip       // 主调IP
slave_ip        // 被调IP
group_by        // 分组
```

#### 返回值

```
[{
    "show_date": "",          // 日期
    "show_time": "",          // 时间点
    "master_name": "",        // 主调
    "slave_name": "",         // 被调
    "interface_name": "",     // 接口名
    "master_ip": "",          // 主调IP
    "slave_ip": "",           // 被调IP
    "the_total_count": "",    // 当日总流量
    "pre_total_count": "",    // 对比日总流量
    "total_count_wave": "",   // 流量同比波动
    "the_avg_time": "",       // 当日平均耗时
    "pre_avg_time": "",       // 对比日平均耗时
    "the_fail_rate": "",      // 当日失败率
    "pre_fail_rate": "",      // 对比日失败率
    "the_timeout_rate": "",   // 当日失败率
    "pre_timeout_rate": ""    // 对比日失败率
}]
```

### 取tarsproperty监控数据

/api/tarsproperty\_monitor\_data

#### 参数

```
thedate         // 显示日期
predate         // 对比日期
startshowtime   // 开始时间
endshowtime     // 结束时间
master_name     // 服务名
master_ip       // IP
property_name   // 特性
policy          // 策略
```

#### 返回值

```
[{
    "show_date": "",          // 日期
    "show_time": "",          // 时间点
    "master_name": "",        // 服务名
    "master_ip": "",          // IP
    "property_name": "",      // 特性
    "policy": "",             // 策略
    "the_value": "",          // 当日特征值
    "pre_value": ""           // 对比日特征值
}]
```

## 字典

### 取服务类型列表

/api/server\_type\_list

#### 参数

无

#### 返回值

```
["tars_cpp"]
```

### 取模板列表

/api/template\_name\_list

#### 参数

无

#### 返回值

```
["tars.default"]
```

### 级联选择服务

/api/cascade\_select\_server

#### 参数

```
level        // 层级，1：应用，2：服务，3：Set，4：节点
application  // 应用，level>1时必填
server_name  // 服务，level>2时必填
set          // Set，level>3时必填，格式：Set名.Set区.Set组
```

#### 返回值

```
[""] 对应层级数据
```

## 资源

### 安装Tars Node

/server/api/install\_tars\_node

#### 参数

```
ips	//需要安装tarsnode的机器IP
```

#### 返回值

```
[
	{
        "ip": "",  //机器IP
        "rst": true, //安装结果
		"msg":"" //安装结果信息
    }
]
```

### 卸载Tars Node

/api/uninstall\_tars\_node

#### 参数

```
ips	//需要卸载tarsnode的机器IP
```

#### 返回值

```
[
	{
        "ip": "",  //机器IP
        "rst": true, //卸载结果
		"msg":"" //卸载结果信息
    }
]
```

## 其他

### 发送自定义命令

/api/send\_command

#### 参数

```
server_ids // 服务ID
command    // 命令
```

#### 返回值

```
[{
	"application": "", // 应用
	"server_name": "", // 服务
	"node_name": "",   // 节点
	"ret_code": "",    // 返回值
	"err_msg": ""      // 错误消息
}]
```

### 自动获取未被占用的端口

/api/auto\_port

#### 参数

```
node_name // 机器IP，用；隔开
```

#### 返回值

```
[{
	"node_name": "", //机器IP
	"port": "", // 端口
}]
```
