一站式 API 模拟与调试平台,让前后端开发零障碍并行
✨ 核心特性
🎯 零配置启动 - 2 行命令搞定一切,秒变 API 服务器
🔄 智能代理 - 无侵入式跨域解决方案,告别 CORS 烦恼
📊 数据生成 - 内置 MockJS,逼真数据一键生成
🎭 Restful API - 自动生成增删改查接口,开发效率翻倍
🕸️ WebSocket 支持 - 完整的实时通信解决方案
📱 可视化管理 - 直观的 Web UI,拖拽式 API 管理
🔄 请求重放 - 历史请求一键重现,调试无忧
🌐 远程调试 - 内置内网穿透,随时随地协作
⚡ 热更新 - 配置修改实时生效,开发体验丝滑
🚀 快速开始
一分钟上手
# 全局安装 npm i -g mockm # 启动示例项目 mm --config
🎉 就这么简单! 你已经拥有了:
- ✅ 跨域代理服务器 (http://127.0.0.1:9000)
- ✅ 可视化管理界面 (http://127.0.0.1:9005)
- ✅ 完整的 API 生态系统
- ✅ 请求记录与重放功能
立即体验
- 🌐 访问 http://127.0.0.1:9000/api/1 查看 API 效果
- 📊 访问 http://127.0.0.1:9005/#/get/api/1 查看请求详情
- 🔧 查看生成的配置文件了解更多功能
💡 提示:
--config参数会创建一个示例配置,包含常用功能演示
💡 核心功能展示
🌍 跨域代理 - 一行代码解决所有跨域问题
问题:前端开发时总是被 CORS 错误困扰?
解决:MockM 让你彻底告别跨域烦恼!
# 最简单的跨域代理
mm proxy=http://your-backend:8080或者使用配置文件:
module.exports = { proxy: 'http://your-backend:8080' }
效果:原本的 http://your-backend:8080/api/users 现在通过 http://127.0.0.1:9000/api/users 访问,自动处理跨域!
🎭 秒建 API - 3 行代码创建完整接口
module.exports = { api: { '/my/awesome/api': { message: '我的第一个 API', data: { success: true } } } }
立即可用:http://127.0.0.1:9000/my/awesome/api
🔄 Restful API 生成器 - 一个配置搞定 CRUD
想要一个完整的博客系统?只需要:
module.exports = { db: { posts: [ { id: 1, title: '我的第一篇博客', content: '使用 MockM 真的太简单了!' } ] } }
瞬间获得:
GET /posts- 获取所有文章GET /posts/1- 获取指定文章POST /posts- 创建新文章PUT /posts/1- 更新文章DELETE /posts/1- 删除文章GET /posts?q=关键词- 搜索文章
📊 智能数据生成 - MockJS 深度集成
module.exports = util => ({ db: { users: util.libObj.mockjs.mock({ 'data|20-50': [{ 'id|+1': 1, name: '@cname', // 随机中文姓名 email: '@email', // 随机邮箱 avatar: '@image("200x200")', // 随机头像 'age|18-65': 1, // 18-65岁随机年龄 address: '@county(true)' // 随机地址 }] }).data } })
🛠️ 响应拦截与修改 - 无需后端配合
需要修改后端返回的数据?轻松搞定:
module.exports = { proxy: { '/': 'http://your-backend:8080', '/api/user': ['data.name', '张三'], // 将用户名改为张三 '/api/status': ['success'] // 直接返回 "success" } }
⏱️ 接口延时模拟 - 测试网络慢的情况
module.exports = { proxy: { '/api/slow': { mid(req, res, next) { setTimeout(next, 3000) // 延时 3 秒 } } } }
🔌 WebSocket 支持 - 实时通信轻松实现
module.exports = { api: { 'ws /chat'(ws, req) { ws.send('欢迎进入聊天室!') ws.on('message', msg => { ws.send(`回音: ${msg}`) }) } } }
📱 可视化管理 - 拖拽式 API 管理
通过 Web UI 轻松管理 API:
- 📋 查看所有接口列表
- 🔍 搜索和过滤接口
- ✏️ 在线编辑接口逻辑
- 📊 查看请求历史和统计
- 🔄 一键重放历史请求
🌐 远程协作 - 内网穿透一键开启
module.exports = { remote: true // 开启远程访问 }
自动生成公网地址,支持:
- 🌍 远程团队协作
- 📱 微信公众号开发
- 🔗 第三方服务对接
🏆 使用场景
👨💻 前端开发者
- 快速搭建 Mock 服务,无需等待后端
- 跨域问题 一行代码解决
- 数据驱动 使用真实数据进行开发
👩💻 后端开发者
- API 文档 自动生成,前端对接更顺畅
- 请求参数 一键分享,告别截图传参
- 调试工具 完整的请求历史记录
🎯 测试工程师
- 接口测试 内置 Postman 式工具
- 数据模拟 各种边界情况轻松测试
- 性能测试 延时、错误模拟
👥 团队协作
- 远程调试 一键生成公网地址
- 版本管理 配置文件化,Git 友好
- 环境隔离 多环境配置,灵活切换
📸 界面预览
🆚 竞品对比
📊 完整功能对比表
| 功能特性 | MockM | MockJS | JSON-Server | YApi/Rap2 | Postman Mock | Wiremock | MSW | Faker.js | Apifox |
|---|---|---|---|---|---|---|---|---|---|
| 🚀 零配置启动 | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 🌐 跨域处理 | ✅ 自动 | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ |
| 📊 数据生成 | ✅ 内置 MockJS | ✅ | ❌ | ✅ | 🔶 基础 | 🔶 基础 | ✅ | ✅ | ✅ |
| 🔄 Restful API | ✅ 自动生成 | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
| 🕸️ WebSocket | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 📱 可视化管理 | ✅ | ❌ | ❌ | ✅ | ✅ | 🔶 第三方 | ❌ | ❌ | ✅ |
| 🔄 请求重放 | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ |
| 🌍 远程调试 | ✅ 内置穿透 | ❌ | ❌ | ✅ | ✅ 云端 | ❌ | ❌ | ❌ | ✅ 云端 |
| ⚡ 热更新 | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ |
| 🛠️ 响应拦截 | ✅ | ✅ 仅前端 | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ |
| 💻 运行环境 | Node.js | Browser | Node.js | Java/Docker | Cloud | Java | Browser/Node | Node.js | Desktop/Cloud |
| 💰 费用 | 免费 | 免费 | 免费 | 免费/付费 | 免费/付费 | 免费 | 免费 | 免费 | 免费/付费 |
🎯 工具定位说明
数据生成类工具
- MockJS: 纯前端数据模拟,无法在 Network 中看到真实请求
- Faker.js: 仅数据生成库,需要自行构建服务器
- MockM: 内置 MockJS + 完整服务器,开箱即用
API 服务器类工具
- JSON-Server: 简单 REST API 生成,无数据生成和跨域功能
- WireMock: Java 生态的强大 Mock 服务器,配置复杂
- MockM: Express 生态,配置简单,功能全面
测试工具类
- Postman Mock: 云端 Mock 服务,需要联网,功能相对基础
- MSW: 专注于测试环境的请求拦截,学习成本较高
- MockM: 开发+测试双用途,本地优先,可扩展云端
平台化工具
- YApi/Rap2: 企业级 API 管理平台,安装部署复杂
- Apifox: 商业化一体化 API 工具,功能强大但收费
- MockM: 轻量级本地工具,专注开发效率
💡 选择建议
| 使用场景 | 推荐工具 | 原因 |
|---|---|---|
| 🚀 快速原型开发 | MockM | 零配置,即开即用 |
| 🧪 前端单元测试 | MSW + Faker.js | 专业测试工具链 |
| 🏢 企业级 API 管理 | YApi + MockM | 文档管理 + 开发调试 |
| ☁️ 团队协作开发 | Apifox / MockM远程模式 | 云端协作 |
| 🎯 Java 后端测试 | WireMock | Java 生态集成 |
| 📊 纯数据生成 | MockJS / Faker.js | 轻量级方案 |
❓ 常见误区澄清
🤔 "MockM 和 MockJS 有什么区别?"
- MockJS: 仅在浏览器中拦截 XHR 请求,无真实网络请求
- MockM: 运行真实服务器,可在 Network 面板看到请求,支持跨域
🤔 "MockM 和 JSON-Server 不是一样的吗?"
- JSON-Server: 只能生成简单的 REST API,无数据生成能力
- MockM: REST API + 数据生成 + 代理 + 可视化管理 + 远程调试
🤔 "为什么不直接用 Postman Mock?"
- Postman Mock: 云端服务,需要网络,功能相对基础,配置复杂
- MockM: 本地优先,功能全面,零配置启动,可选云端模式
🤔 "MSW 看起来也很强大?"
- MSW: 专注测试环境,主要用于单元测试和集成测试
- MockM: 专注开发环境,提供完整的开发服务器解决方案
🤔 "企业已经有 YApi/Apifox 了,还需要 MockM 吗?"
- YApi/Apifox: 重文档管理和团队协作,开发时仍需本地工具
- MockM: 完美补充,专注开发效率,可与文档平台配合使用
🤝 社区与支持
📚 文档与教程
🌟 友情项目
| 项目 | 简介 |
|---|---|
| 🎨 Taroify | 移动端组件库 Vant 的 Taro 版本,助力小程序开发 |
| 🎯 wot-design-uni | 基于 Vue3+TS 的 uni-app 组件库,70+ 高质量组件 |
如果你有项目需要在此页面上展示,请告诉我。
💬 交流与反馈
📄 开源协议
本项目基于 MIT 协议开源
Copyright (c) 2017-present, xw
⭐ 如果这个项目对你有帮助,请给我们一个 Star!



