cfcebbe300d256d25eed46a40fe21935d11f2af9
- 将MCP服务和Mock API合并到单个HTTP服务器(8080端口) - 添加POST /mcp端点,使用无状态StreamableHttpService - 新增docs/mcp-implementation.md文档
mock-server
基于 Rust/Axum 的配置驱动型 Mock 服务,支持 YAML 配置、请求匹配、热重载、延迟响应、大文件流式返回等特性。
特性
- 配置驱动:YAML 定义 API 行为,无需修改代码
- 热重载:
mocks/*.yaml变更自动生效,无需重启服务 - 高性能:基于 Rust 异步运行时,路径首段哈希索引 O(1) 匹配
- 低内存:大响应体支持
file://协议从磁盘流式读取 - 请求匹配:支持 method、path、headers、query_params、body 多维度匹配
快速开始
1. 安装依赖
确保已安装 Rust 工具链:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
2. 构建与运行
cargo build # 构建项目
cargo run # 启动服务 http://127.0.0.1:8080
cargo test # 运行所有测试
cargo test <pattern> # 运行匹配的测试(如 cargo test router)
cargo clippy # 代码检查
cargo fmt # 格式化代码
文件结构
src/
├── main.rs # 入口,热重载监听,Axum 路由配置
├── config.rs # 数据结构定义(MockRule, RequestMatcher 等)
├── loader.rs # YAML 解析,目录扫描
├── router.rs # 路径首段索引,匹配逻辑
└── handler.rs # 统一请求处理器,文件流式响应
tests/ # 集成测试(每个模块一个测试文件)
mocks/ # YAML Mock 配置文件
Mock 配置
详细配置规范请参考 .claude/rules/mock-spec.md
未来计划
1. 动态参数与模板响应
支持路径参数捕获(如 /api/users/{id})和响应模板,可在响应中引用请求参数:
# 请求: GET /api/users/123
# 响应: { "id": "123", "name": "User 123" }
2. HTTPS 支持
内置 TLS/SSL 支持,提供安全的 HTTPS 服务。
3. 可视化管理界面
- TUI(终端界面):基于 Ratatui 的交互式终端管理
- GUI(图形界面):Web Dashboard 或桌面应用,可视化管理 Mock 规则
此功能需要深入讨论,欢迎提出建议和需求
许可证
MIT
Languages
Rust
100%