websoft9/appmanage/docs/developer.md
2023-04-11 12:32:02 +08:00

336 lines
9.3 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# API设计文档
## API结构
### 请求
#### 请求方式
支持如下两种调用方式:
* get
* post
#### 请求头(公共参数)
| 参数名称 | 用途 |类型 |必要性 |
| ------ | --------------------------------------------- | ------ |------ |
| Version | 接口版本 | string |可选 |
| Language | 接口显示语言 | string |可选 |
#### 安全验证
本微服务没有安全验证模块,需通过 API 网关实现
#### 请求主体
[业务接口详情](#业务接口详情)
### 响应结果
#### 响应头(公共参数)
|返回参数 | 用途 |类型 |必要性 |
| ------ | --------------------------------------------- | ------ |------ |
| HTTP状态码 | 判断接口调用是否成功200或404 | Integer |必须 |
#### 响应主体
|返回参数 | 用途 |类型 |必要性 |
| ------ | --------------------------------------------- | ------ |------ |
| ResponseData | 各个接口的业务数据 | object(依据接口而异) |必须 |
| Error | 错误code和错误信息 | ErrorInfo | 非必须 ,无错误时不返回 |
```
{
"ResponseData": {app_id: "xxxx"},
"Error": {
"Code": "Requirement.NotEnough",
"Message": "Insufficient system resources (cpu, memory, disk space).",
"Detail": "Error detail information"
}
}
```
#### 公共错误代码
| code |message | detail |
| --------------------------------------------- | ------ | ------ |
| Container.Command.Error | Docker 返回错误联系支持https://support.websoft9.com |错误详细信息 |
| SystemError | 系统错误联系支持https://support.websoft9.com | 错误详细信息 |
## 业务接口详情
各个业务接口的详细说明,公共参数不在这里继续说明。
### App 安装
#### Action
AppInstall
#### 请求参数
| 参数名称 | 用途 |类型 |必要性 |
| ------ | --------------------------------------------- | ------ |------ |
| app_name | 应用名称 | string |必须 |
| customer_app_name | 用户自定义应用名称 | string |必须 |
| app_version | 应用版本 | string |必须 |
#### 返回结果
| 返回值 |类型 |必要性 |
| ------ | ------ |------ |
| ResponseData | String(AppID) |必须 |
| Error | ErrorInfo |非必须 |
ErrorInfo 说明:
| code |message |
| --------------------------------------------- | ------ |
| Param.AppName.Blank | APP名称为空 |
| Param.AppName.NotExis | 不支持安装指定的App |
| Param.CustomerAppName.Blank | 用户自定义APP名称为空 |
| Param.CustomerAppName.FormatError | 用户自定义APP名称只能是数字和小写字母组成 |
| Param.CustomerAppName.Repeat | 已经安装了此应用请重新指定APP名称 |
| Param.CustomerAppName.Wait | 同名应用已经在安装等待中请重新指定APP名称 |
| Param.AppVersion.Blank | 安装App的版本不能为空 |
| Requirement.NotEnough| 系统资源cpu内存磁盘空间不足 |
### App 卸载
#### Action
AppUninstall
#### 请求参数
| 参数名称 | 用途 |类型 |必要性 |
| ------ | --------------------------------------------- | ------ |------ |
| app_id | 卸载该app | string |必须 |
| delete_image | 是否删除镜像 | boolean |非必须默认为False |
| delete_data | 是否删除所有数据 | boolean |非必须默认为True |
#### 返回结果
| 返回值 |类型 |必要性 |
| ------ | ------ |------ |
| ResponseData | String(AppID) |必须 |
| error | ErrorInfo |非必须 |
ErrorInfo 说明:
| code |message |
| --------------------------------------------- | ------ |
| Param.APPID.Blank | APP_ID 不能为空 |
| Param.APPID.FormatError | APP_ID 只能是数字和小写字母组成 |
| Param.APPID.NotExist | APP不存在 |
### App 重启
#### Action
AppRestart
#### 请求参数
| 参数名称 | 用途 |类型 |必要性 |
| ------ | --------------------------------------------- | ------ |------ |
| app_id | 重启该app | string |必须 |
#### 返回结果
| 返回值 |类型 |必要性 |
| ------ | ------ |------ |
| ResponseData | String(AppID) |必须 |
| error | ErrorInfo |非必须 |
ErrorInfo 说明:
| code |message |
| --------------------------------------------- | ------ |
| Param.APPID.Blank | APP_ID不能为空 |
| Param.APPID.FormatError | APP_ID只能是数字和小写字母组成 |
| Param.APPID.NotExist | APP不存在 |
### App 启动
#### Action
AppStart
#### 请求参数
| 参数名称 | 用途 |类型 |必要性 |
| ------ | --------------------------------------------- | ------ |------ |
| app_id | 启动该app | string |必须 |
#### 返回结果
| 返回值 |类型 |必要性 |
| ------ | ------ |------ |
| ResponseData | String(AppID) |必须 |
| error | ErrorInfo |非必须 |
ErrorInfo 说明:
| code |message |
| --------------------------------------------- | ------ |
| Param.APPID.Blank | APP_ID不能为空 |
| Param.APPID.FormatError | APP_ID只能是数字和小写字母组成 |
| Param.APPID.NotExist | APP不存在 |
### App 停止
#### Action
AppStop
#### 请求参数
| 参数名称 | 用途 |类型 |必要性 |
| ------ | --------------------------------------------- | ------ |------ |
| app_id | 停止该app | string |必须 |
#### 返回结果
| 返回值 |类型 |必要性 |
| ------ | ------ |------ |
| ResponseData | String(AppID) |必须 |
| error | ErrorInfo |非必须 |
ErrorInfo 说明:
| code |message |
| --------------------------------------------- | ------ |
| Param.APPID.Blank | APP_ID不能为空 |
| Param.APPID.FormatError | APP_ID只能是数字和小写字母组成 |
| Param.APPID.NotExist | APP不存在 |
### App 状态查询
#### Action
AppStatus
#### 请求参数
| 参数名称 | 用途 |类型 |必要性 |
| ------ | --------------------------------------------- | ------ |------ |
| app_id | 查询该app的信息 | string |必须 |
#### 返回结果
| 返回值 |类型 |必要性 |
| ------ | ------ |------ |
| ResponseData | AppStatusInfo |必须 |
| error | ErrorInfo |非必须 |
AppStatusInfo 说明:
```
{
app_id应用ID,
name应用名,
customer_name自定义应用名,
trade_mark应用商标,
status_code应用运行状态码,queuing:'00',pulling:'10'creating:'11'initing:'12'running:'30'stop'40'error'50'
status应用运行状态,pulling:拉取中creating:启动中initing:初始化中running:运行stopping停止中stopped停止uninstalling卸载中
official_app是否为官方应用,
image_url图片路径
}
```
ErrorInfo 说明:
| code |message |
| --------------------------------------------- | ------ |
| Param.APPID.Blank | APP_ID 不能为空 |
| Param.APPID.FormatError | APP_ID 只能是数字和小写字母组成 |
| Param.APPID.NotExist | APP不存在 |
### App 列表查询
#### Action
AppList
#### 请求参数
| 参数名称 | 用途 |类型 |必要性 |
| ------ | --------------------------------------------- | ------ |------ |
| customer_app_name | 查询指定的 customer_app_name | string | 非必须 |
#### 返回结果
| 返回值 |类型 |必要性 |
| ------ | ------ |------ |
| ResponseData | Array of AppDetailInfo |必须 |
| error | ErrorInfo |非必须 |
AppDetailInfo 说明:
```
{
app_id应用ID,
name应用名,
customer_name自定义应用名,
trade_mark应用商标,
status_code应用运行状态码,queuing:'00',pulling:'10'creating:'11'initing:'12'running:'30'stop'40'error'50'
status应用运行状态,queuing:排队等待,pulling:镜像拉取中creating:容器启动中initing:初始化中running:正常运行stop停止error错误
official_app是否为官方应用,
image_url图片路径,
running_info: { // 只有status=running才有值其他时候为空
port应用端口,
compose_filedocker compose文件路径,
url应用网址,
admin_url管理员网址,
user_name用户名,
password密码,
default_domain: 默认域名,
set_domain: 用户自定义域名,
}
}
```
ErrorInfo 说明:
| code |message |
| --------------------------------------------- | ------ |
| Param.CustomerAppName.FormatError | 用户自定义APP名称只能是数字和小写字母组成 |