Skip to content

Commit e7945c9

Browse files
committed
docs(protocol): add apifox websocket docs
1 parent 5c4ee7e commit e7945c9

19 files changed

Lines changed: 7377 additions & 455 deletions

MCServerLauncher.Daemon/.Resources/Docs/apifox.json

Lines changed: 5940 additions & 0 deletions
Large diffs are not rendered by default.

MCServerLauncher.Daemon/.Resources/Docs/docs/ws-api.md

Lines changed: 50 additions & 455 deletions
Large diffs are not rendered by default.
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# 返回码
2+
3+
返回码是 action 响应中的 `retcode` 数字。`0` 表示成功,其余值表示错误或错误类别。
4+
5+
## 成功
6+
7+
| 响应码 | 英文名称 | 说明 |
8+
| --- | --- | --- |
9+
| `0` | OK | action 执行成功 |
10+
11+
## `10000` Request Error - 请求错误
12+
13+
| 响应码 | 英文名称 | 中文名称 | 说明 |
14+
| --- | --- | --- | --- |
15+
| `10000` | Request Error | 请求错误 | 请求错误类别 |
16+
| `10001` | Bad Request | 无效请求 | 无法解析请求或缺失内容 |
17+
| `10002` | Unknown Action | 未知操作 | 客户端调用未知 action |
18+
| `10003` | Permission Denied | 权限不足 | token 权限不足 |
19+
| `10004` | Action Unavailable | 暂不可用 | 请求的 action 当前不可用 |
20+
| `10005` | Rate Limit Exceeded | 频率过快 | 请求频率或会话数量超过限制 |
21+
| `10006` | Param Error | 参数错误 | 参数缺失、类型错误或格式错误 |
22+
23+
## `20000` Server Error - daemon 错误
24+
25+
| 响应码 | 英文名称 | 中文名称 | 说明 |
26+
| --- | --- | --- | --- |
27+
| `20001` | Unexpected Error | 意外错误 | daemon 内部发生未处理错误 |
28+
29+
## `21000` File Error - 文件错误
30+
31+
| 响应码 | 英文名称 | 中文名称 | 说明 |
32+
| --- | --- | --- | --- |
33+
| `21000` | File Error | 文件错误 | 文件错误类别 |
34+
| `21001` | File Not Found | 文件不存在 | 访问的文件或目录不存在 |
35+
| `21002` | File Already Exists | 文件已存在 | 目标文件或目录已存在 |
36+
| `21003` | File In Use | 文件已占用 | 文件正在被使用 |
37+
| `21004` | It's A Directory | 这是目录 | 需要文件时传入了目录 |
38+
| `21005` | It's A File | 这是文件 | 需要目录时传入了文件 |
39+
| `21006` | File Access Denied | 无法访问文件 | 系统拒绝读写、创建、删除或移动 |
40+
| `21007` | Disk Full | 磁盘已满 | daemon 可用磁盘空间不足 |
41+
42+
## `21100` Upload/Download Error - 上传下载错误
43+
44+
| 响应码 | 英文名称 | 中文名称 | 说明 |
45+
| --- | --- | --- | --- |
46+
| `21100` | Upload/Download Error | 上传下载错误 | 上传下载错误类别 |
47+
| `21101` | Already Uploading/Downloading | 已在传输 | 同一路径或会话已在传输 |
48+
| `21102` | Not Uploading/Downloading | 未在传输 | 上传或下载会话不存在或已超时 |
49+
| `21103` | File Too Big | 文件过大 | 文件超过实现允许的大小 |
50+
51+
## `30000` Instance Error - 实例错误
52+
53+
| 响应码 | 英文名称 | 中文名称 | 说明 |
54+
| --- | --- | --- | --- |
55+
| `30000` | Instance Error | 实例错误 | instance 错误类别 |
56+
| `30001` | Instance Not Found | 实例不存在 | 访问的 instance 不存在 |
57+
| `30002` | Instance Already Exists | 实例已存在 | 访问的 instance 已存在 |
58+
| `30003` | Bad Instance State | 实例状态错误 | instance 当前状态不支持该操作 |
59+
| `30004` | Bad Instance Type | 实例类型错误 | instance 类型不支持该操作 |
60+
61+
## `31000` Instance Action Error - 实例操作错误
62+
63+
| 响应码 | 英文名称 | 中文名称 | 说明 |
64+
| --- | --- | --- | --- |
65+
| `31001` | Instance Action Error | 实例操作错误 | instance 操作错误类别 |
66+
| `31002` | Installation Error | 安装错误 | instance 安装或更新失败 |
67+
| `31003` | Process Error | 进程错误 | instance 启动、停止、输入或进程控制失败 |
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# Action
2+
3+
**Action** 是 client 主动发起的 JSON RPC 请求。daemon 收到请求后执行对应 handler,并返回同一个 `id` 的响应。
4+
5+
## 请求字段
6+
7+
| 字段 | 数据类型 | 说明 |
8+
| --- | --- | --- |
9+
| `action` | string | action 名称,使用 snake_case,例如 `get_system_info` |
10+
| `params` | object \| null | action 参数。无参数时通常使用 `{}` |
11+
| `id` | uuid string | 请求编号。响应中的 `id` 与请求一致 |
12+
13+
### 请求示例
14+
15+
```json
16+
{
17+
"action": "ping",
18+
"params": {},
19+
"id": "11111111-1111-1111-1111-111111111111"
20+
}
21+
```
22+
23+
## 响应字段
24+
25+
| 字段 | 数据类型 | 说明 |
26+
| --- | --- | --- |
27+
| `status` | string | 请求状态,当前使用 `ok``error` |
28+
| `retcode` | int | 返回码,见 [](action-errcode.md) |
29+
| `data` | object \| null | action 结果数据。失败时通常为 `null` |
30+
| `message` | string | 返回码消息,可能包含补充错误文本 |
31+
| `id` | uuid string | 请求编号,与请求中的 `id` 一致 |
32+
33+
### 成功响应示例
34+
35+
```json
36+
{
37+
"status": "ok",
38+
"retcode": 0,
39+
"data": {
40+
"time": 1717171717171
41+
},
42+
"message": "OK",
43+
"id": "11111111-1111-1111-1111-111111111111"
44+
}
45+
```
46+
47+
### 失败响应示例
48+
49+
```json
50+
{
51+
"status": "error",
52+
"retcode": 10002,
53+
"data": null,
54+
"message": "Unknown Action",
55+
"id": "11111111-1111-1111-1111-111111111111"
56+
}
57+
```
58+
59+
## 命名规则
60+
61+
C# 中的 `ActionType` enum 通过 JSON snake_case converter 进入 wire format。
62+
63+
| C# 名称 | JSON 名称 |
64+
| --- | --- |
65+
| `GetSystemInfo` | `get_system_info` |
66+
| `FileUploadRequest` | `file_upload_request` |
67+
| `UpdateInstanceSettings` | `update_instance_settings` |
68+
69+
## 权限
70+
71+
每个 action handler 声明一个权限节点。权限值为 `*` 时表示当前 handler 接受任意已连接客户端。权限匹配规则见 [](permissions.md)

0 commit comments

Comments
 (0)