CNWei b579a835de docs: 重构项目文档结构
- 将 CLAUDE.md 移至 .claude/ 目录,精简为 AI 开发指南
- 扩充 README.md 为完整的用户文档
- 新增 rules/mock-spec.md: YAML 配置生成规范
- 新增 rules/commit-spec.md: Git 提交消息格式规范
- 从 .gitignore 移除 .claude/ 目录以便跟踪

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 17:11:10 +08:00
2026-03-25 17:11:10 +08:00
2025-12-25 13:56:11 +08:00
2026-01-04 11:44:18 +08:00
2026-01-04 11:44:18 +08:00
2026-03-25 17:11:10 +08:00

mock-server

基于 Rust/Axum 的配置驱动型 Mock 服务,支持 YAML 配置、请求匹配、热重载、延迟响应、大文件流式返回等特性。

特性

  • 配置驱动YAML 定义 API 行为,无需修改代码
  • 热重载mocks/*.yaml 变更自动生效,无需重启服务
  • 高性能:基于 Rust 异步运行时,路径首段哈希索引 O(1) 匹配
  • 低内存:大响应体支持 file:// 协议从磁盘流式读取
  • 文件上传:内置 /api/upload 端点,按日期分目录存储

快速开始

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   # 统一请求处理器,文件流式响应
└── upload.rs    # Multipart 文件上传处理

tests/           # 集成测试(每个模块一个测试文件)
mocks/           # YAML Mock 配置文件
storage/         # 上传文件存储(按 YYYY-MM-DD 分目录)

Mock 配置

详细配置规范请参考 .claude/rules/mock-spec.md

API

文件上传

POST /api/upload
Content-Type: multipart/form-data

file: <binary>

响应示例:

{
  "filename": "example.txt",
  "path": "storage/2024-01-15/example.txt",
  "size": 1024
}

许可证

MIT

Description
基于Rust/Axum的配置驱动型Mock服务,支持YAML配置、请求匹配、延迟响应、大文件流式返回等特性。
Readme MIT 1.7 MiB
Languages
Rust 100%