Skip to content

Commit

Permalink
feat(ui): add v1 api
Browse files Browse the repository at this point in the history
  • Loading branch information
spacemeowx2 committed Feb 4, 2025
1 parent 5e904b7 commit feed95f
Show file tree
Hide file tree
Showing 2 changed files with 315 additions and 5 deletions.
136 changes: 131 additions & 5 deletions docs/docs/api/v1.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
响应:

- Content-Type: application/json
- Body: 当前配置的 JSON 字符串
- Body: 当前配置的 JSON 字符串,包含完整的运行时配置

### 更新配置

Expand All @@ -52,12 +52,35 @@

获取所有已注册的网络类型和代理类型。

响应:

```json
{
"net": {
"<网络类型名称>": {
"schema": "<JSON Schema>",
"description": "网络类型描述"
}
// ... 其他网络类型
},
"proxy": {
"<代理类型名称>": {
"schema": "<JSON Schema>",
"description": "代理类型描述"
}
// ... 其他代理类型
}
}
```

### 获取系统状态

**GET** `/state`

获取系统当前运行状态。

响应:系统状态字符串

## 连接管理

### 获取所有连接
Expand All @@ -66,12 +89,35 @@

获取当前所有活动连接的信息。

响应:

```json
{
"connections": [
{
"id": "<连接UUID>",
"local_addr": "<本地地址>",
"remote_addr": "<远程地址>",
"net": "<使用的网络名称>",
"upload": "<上传字节数>",
"download": "<下载字节数>",
"start_time": "<开始时间>",
"chains": ["<经过的代理链>"]
}
],
"upload": "<总上传字节数>",
"download": "<总下载字节数>"
}
```

### 关闭所有连接

**DELETE** `/connections`

关闭所有活动的连接。

响应:返回已停止的连接信息,格式与 GET `/connections` 相同。

### 关闭指定连接

**DELETE** `/connection/{uuid}`
Expand All @@ -82,7 +128,12 @@

- uuid: 连接的唯一标识符

响应: 布尔值,表示操作是否成功
响应:

```json
true // 操作成功
false // 操作失败
```

### WebSocket 连接监控

Expand All @@ -95,6 +146,51 @@
- patch: 是否使用增量更新模式
- without_connections: 是否排除详细连接信息

响应: 根据 patch 参数返回不同格式的 WebSocket 消息

当 patch=false 时:

```json
{
"type": "full",
"value": {
"connections": [
{
"id": "<连接UUID>",
"local_addr": "<本地地址>",
"remote_addr": "<远程地址>",
"net": "<使用的网络名称>",
"upload": "<上传字节数>",
"download": "<下载字节数>",
"start_time": "<开始时间>",
"chains": ["<经过的代理链>"]
}
],
"upload": "<总上传字节数>",
"download": "<总下载字节数>"
}
}
```

当 patch=true 时,首次返回完整数据,之后返回差异数据:

```json
{
"type": "patch",
"value": [
{ "op": "replace", "path": "/upload", "value": "<新的上传字节数>" },
{
"op": "add",
"path": "/connections/-",
"value": {
/* 新增的连接信息 */
}
}
// 其他 JSON Patch 操作
]
}
```

## 代理节点管理

### 更新代理选择
Expand Down Expand Up @@ -136,11 +232,17 @@

```json
{
"connect": "连接耗时(毫秒)",
"response": "响应耗时(毫秒)"
"connect": 100, // 连接耗时(毫秒)
"response": 200 // 响应耗时(毫秒)
}
```

如果测试超时或失败,返回:

```json
null
```

## 用户数据管理

### 获取用户数据
Expand All @@ -149,18 +251,36 @@

获取指定键的用户数据。

响应:存储的用户数据对象,格式取决于存储时的数据类型

### 设置用户数据

**PUT** `/userdata/{key}`

设置指定键的用户数据。

响应:

```json
{
"copied": 1024 // 成功写入的字节数
}
```

### 删除用户数据

**DELETE** `/userdata/{key}`

删除指定键的用户数据。

响应:

```json
{
"ok": true // 删除成功
}
```

### 列出所有用户数据

**GET** `/userdata`
Expand All @@ -171,7 +291,11 @@

```json
{
"keys": ["key1", "key2", ...]
"keys": [
"key1",
"key2"
// ... 更多键
]
}
```

Expand All @@ -182,3 +306,5 @@
**WebSocket** `/log`

通过 WebSocket 实时接收系统日志。

响应:每个 WebSocket 消息包含一条日志文本字符串。
Loading

0 comments on commit feed95f

Please sign in to comment.