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