# FastAPI-WireMock接口模拟服务 **Repository Path**: Campione416/FastWire-APIMock ## Basic Information - **Project Name**: FastAPI-WireMock接口模拟服务 - **Description**: 用于模拟API发送请求 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-11 - **Last Updated**: 2026-04-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FastWire-APIMock FastWire-APIMock 是一个基于 FastAPI 和 WireMock 的 API 模拟服务管理平台,用于创建、管理和测试 API 模拟服务。 ## 项目简介 本项目提供了一套完整的 API Mock 解决方案,集成了 FastAPI Web 框架和 WireMock 模拟服务器,支持通过 RESTful API 创建、读取、更新和删除模拟接口配置。 ## 技术栈 - **Web 框架**: FastAPI - **数据库**: MySQL + SQLAlchemy - **Mock 服务**: WireMock - **认证方式**: JWT (如有需要) ## 核心功能 - 创建和管理 API Mock 配置 - 与 WireMock 无缝集成 - RESTful API 接口 - 支持 HTTP 方法配置 (GET, POST, PUT, DELETE 等) - 请求记录和日志追踪 - 健康检查接口 ## 项目结构 ``` FastWire-APIMock/ ├── app/ # 主应用目录 │ ├── api/ # API 路由 │ │ └── endpoints/ # 端点定义 │ ├── config.py # 配置管理 │ ├── main.py # 应用入口 │ ├── models/ # 数据模型 │ │ ├── database.py # 数据库连接 │ │ └── schemas.py # 数据模式 │ └── services/ # 业务逻辑 │ ├── db_service.py │ ├── mock_service.py │ └── request_service.py ├── scripts/ # 启动脚本 │ └── app_launcher.py ├── tests/ # 测试 └── wiremock/ # WireMock 文件 ``` ## 环境要求 - Python 3.8+ - MySQL 5.7+ - Java (用于运行 WireMock) ## 安装配置 1. 安装依赖包: ```bash pip install -r requirements.txt ``` 2. 配置数据库连接,编辑 `app/config.yaml`: ```yaml database: url: "mysql+pymysql://用户名:密码@主机地址:端口/数据库名?charset=utf8mb4" ``` 3. 确保 WireMock JAR 文件存在于 `wiremock/` 目录 ## 快速启动 使用项目提供的启动器同时启动 FastAPI 和 WireMock: ```bash python scripts/app_launcher.py ``` 参数说明: - `--fastapi-host`: FastAPI 监听地址 (默认 127.0.0.1) - `--fastapi-port`: FastAPI 端口 (默认 8000) - `--wiremock-port`: WireMock 端口 (默认 8080) 或者分别启动: ```bash # 启动 FastAPI uvicorn app.main:app --host 127.0.0.1 --port 8000 # 启动 WireMock java -jar wiremock/wiremock-standalone.jar --port 8080 ``` ## API 端点 ### Mock 配置管理 | 方法 | 路径 | 描述 | |------|------|------| | GET | `/api/mocs` | 获取所有 Mock 配置 | | GET | `/api/mocs/{pk}` | 获取单个 Mock 详情 | | POST | `/api/mocs` | 创建新 Mock 配置 | | PUT | `/api/mocs/{id}` | 更新 Mock 配置 | | DELETE | `/api/mocs/{pk}` | 删除 Mock 配置 | ### 请求记录 | 方法 | 路径 | 描述 | |------|------|------| | GET | `/api/requests` | 获取请求记录列表 | | POST | `/api/requests` | 创建请求记录 | ### 健康检查 | 方法 | 路径 | 描述 | |------|------|------| | GET | `/health` | 服务健康检查 | ## 数据模型 ### MockApiCreate 创建 Mock 配置所需字段: - `method`: HTTP 方法 (GET, POST, PUT, DELETE 等) - `endpoint`: API 端点路径 - `response_body`: 响应 body (JSON) - `status_code`: HTTP 状态码 (默认 200) - `delay_ms`: 响应延迟 (毫秒) ## 使用示例 创建一个简单的 Mock API: ```python import requests mock_data = { "method": "GET", "endpoint": "/api/users", "response_body": {"users": [{"id": 1, "name": "张三"}]}, "status_code": 200 } response = requests.post("http://127.0.0.1:8000/api/mocs", json=mock_data) print(response.json()) ``` ## 开发测试 运行测试: ```bash python -m pytest tests/ ``` ## 许可证 本项目仅供学习参考使用。 ## 贡献指南 欢迎提交 Issue 和 Pull Request 来帮助改进项目。