websoft9/docs/PRD.md
qiaofeng1227 a84811d78f doc
2021-08-30 11:53:03 +08:00

198 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

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.

# 概述
StackHub主要架构和技术选型如下
架构后台JS框架+后端Python提供API服务
后端Python, Docker, Docker-compose, FastAPI, Typer
## 后端接口说明
### 用户相关(登陆,退出,注册等 待讨论?)
### APP详情是否共用websoft9主站信息 待讨论?)
### APP列表是否共用websoft9主站信息 待讨论?)
### App安装接口installApp
#### 接口地址
http://ip:port/installApp
#### 访问方式
Httpget/post
同步/异步:异步
#### 接口参数
| 变量名 | 说明 | 类型 | 备注 |
| ------------ | ------------ | ----- |----- |
| appName | 安装app的名称| str |必须 |
e.g.
```
{
"appName":"redmine"
}
```
#### 返回数据
| 变量名 | 说明 | 类型 | 备注 |
| ------------ | ------------ | ----- |----- |
| code | 接口是否调用成功标志| str |"0":失败 "1":成功 |
| message | 接口返回信息| str |如接口调用成功时返回"appName安装成功" |
| data | APP相关信息| Json |主容器名: websoft9-appName App端口: port(9001) |
e.g.
```
{
"code":"1",
"message":"appName安装成功",
"data":{
"containerName": "websoft9-appName",
"port": "9001",
"db_port": "3307",
"info": "XXXX"
}
}
```
#### 接口主要内容
通过调用该接口判断服务器是否已经存在websoft9-appName容器如存在返回失败信息并提示已经存在该App如不存在在服务器端启动一个名为websoft9-appName的容器以及相关容器主容器以及相关容器的端口需要根据服务器状态动态设定。
### App卸载接口uninstallApp
#### 接口地址
http://ip:port/uninstallApp
#### 访问方式
Httpget/post
同步/异步:同步
#### 接口参数
| 变量名 | 说明 | 类型 | 备注 |
| ------------ | ------------ | ----- |----- |
| appName | 卸载app的名称| str |必须 |
e.g.
```
{
"appName":"redmine"
}
```
#### 返回数据
| 变量名 | 说明 | 类型 | 备注 |
| ------------ | ------------ | ----- |----- |
| code | 接口是否调用成功标志| str |"0":失败 "1":成功 |
| message | 接口返回信息| str |如接口调用成功时返回"appName卸载成功" |
e.g.
```
{
"code":"0",
"message":"appName卸载失败任然在运行端口为9001请ssh登陆如服务器后使用docker-ps查看并手动停止容器"
}
```
### App状态查询接口getAppInfo
#### 接口地址
http://ip:port/getAppInfo
#### 访问方式
Httpget/post
同步/异步:同步
#### 接口参数
| 变量名 | 说明 | 类型 | 备注 |
| ------------ | ------------ | ----- |----- |
| appName | 安装app的名称| str |必须 |
e.g.
```
{
"appName":"redmine"
}
```
#### 返回数据
| 变量名 | 说明 | 类型 | 备注 |
| ------------ | ------------ | ----- |----- |
| code | 接口是否调用成功标志| str |"0":失败 "1":成功 |
| message | 接口返回信息| str |如接口调用成功时返回"appName状态信息查询" |
| data | APP相关信息| Json |状态:启动成功 App端口: port(9001) |
e.g.
```
{
"code":"1",
"message":"appName状态信息查询成功",
"data":{
"status": "0", // 0:未启动 1:启动成功 2启动失败(状态信息不正常将错误信息返回到info字段?)
"port": "",
"db_port": "",
"info": ""
}
}
```
### 客户已安装App状态查询接口getAllAppInfo
### 卸载客户已安装AppuninstallAllApp
### 服务器状态查询接口searchServer
#### 接口地址
http://ip:port/searchServer
#### 访问方式
Httpget/post
同步/异步:同步
#### 接口参数
#### 返回数据
| 变量名 | 说明 | 类型 | 备注 |
| ------------ | ------------ | ----- |----- |
| code | 接口是否调用成功标志| str |"0":失败 "1":成功 |
| message | 接口返回信息| str |如接口调用成功时返回"服务器状态信息查询成功" |
| data | APP相关信息| Json |服务器各种信息如cpu使用率内存使用率磁盘占有率 |
e.g.
```
{
"code":"1",
"message":"服务器状态信息查询成功",
"data":{
"cpu": "10%",
"memory": "54%",
"hdd": "",
"risk": "3",
...
"info": ""
}
}
```