docs: 更新README并添加文件上传mock配置
- 移除文件上传相关文档(已从代码中移除) - 新增未来计划:动态参数、HTTPS、可视化管理界面 - 添加 upload.yaml mock 配置文件
This commit is contained in:
35
README.md
35
README.md
@@ -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
23
mocks/v1/upload.yaml
Normal 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
|
||||||
Reference in New Issue
Block a user