docs: 更新README并添加文件上传mock配置

- 移除文件上传相关文档(已从代码中移除)
   - 新增未来计划:动态参数、HTTPS、可视化管理界面
   - 添加 upload.yaml mock 配置文件
This commit is contained in:
2026-03-25 17:40:34 +08:00
parent b579a835de
commit 9c1d0e16b4
2 changed files with 40 additions and 18 deletions

View File

@@ -8,7 +8,7 @@
- **热重载**`mocks/*.yaml` 变更自动生效,无需重启服务 - **热重载**`mocks/*.yaml` 变更自动生效,无需重启服务
- **高性能**:基于 Rust 异步运行时,路径首段哈希索引 O(1) 匹配 - **高性能**:基于 Rust 异步运行时,路径首段哈希索引 O(1) 匹配
- **低内存**:大响应体支持 `file://` 协议从磁盘流式读取 - **低内存**:大响应体支持 `file://` 协议从磁盘流式读取
- **文件上传**:内置 `/api/upload` 端点,按日期分目录存储 - **请求匹配**:支持 method、path、headers、query_params、body 多维度匹配
## 快速开始 ## 快速开始
@@ -39,38 +39,37 @@ src/
├── config.rs # 数据结构定义MockRule, RequestMatcher 等) ├── config.rs # 数据结构定义MockRule, RequestMatcher 等)
├── loader.rs # YAML 解析,目录扫描 ├── loader.rs # YAML 解析,目录扫描
├── router.rs # 路径首段索引,匹配逻辑 ├── router.rs # 路径首段索引,匹配逻辑
── handler.rs # 统一请求处理器,文件流式响应 ── handler.rs # 统一请求处理器,文件流式响应
└── upload.rs # Multipart 文件上传处理
tests/ # 集成测试(每个模块一个测试文件) tests/ # 集成测试(每个模块一个测试文件)
mocks/ # YAML Mock 配置文件 mocks/ # YAML Mock 配置文件
storage/ # 上传文件存储(按 YYYY-MM-DD 分目录)
``` ```
## Mock 配置 ## Mock 配置
详细配置规范请参考 [.claude/rules/mock-spec.md](.claude/rules/mock-spec.md) 详细配置规范请参考 [.claude/rules/mock-spec.md](.claude/rules/mock-spec.md)
## API ## 未来计划
### 文件上传 ### 1. 动态参数与模板响应
```http 支持路径参数捕获(如 `/api/users/{id}`)和响应模板,可在响应中引用请求参数:
POST /api/upload
Content-Type: multipart/form-data
file: <binary> ```yaml
# 请求: GET /api/users/123
# 响应: { "id": "123", "name": "User 123" }
``` ```
**响应示例:** ### 2. HTTPS 支持
```json 内置 TLS/SSL 支持,提供安全的 HTTPS 服务。
{
"filename": "example.txt", ### 3. 可视化管理界面
"path": "storage/2024-01-15/example.txt",
"size": 1024 - **TUI终端界面**:基于 Ratatui 的交互式终端管理
} - **GUI图形界面**Web Dashboard 或桌面应用,可视化管理 Mock 规则
```
> 此功能需要深入讨论,欢迎提出建议和需求
## 许可证 ## 许可证

23
mocks/v1/upload.yaml Normal file
View File

@@ -0,0 +1,23 @@
id: "upload_file"
request:
method: "POST"
path: "/api/v1/upload"
headers:
Content-Type: "multipart/form-data"
response:
status: 200
headers:
Content-Type: "application/json"
body: >
{
"code": 0,
"data": {
"filename": "example.txt",
"path": "storage/2024-01-15/example.txt",
"size": 1024,
"url": "/storage/2024-01-15/example.txt"
},
"msg": "upload success"
}
settings:
delay_ms: 100