whistle.mock-plugins
Version:
Whistle 插件,用于快速创建 API 模拟数据
120 lines (97 loc) • 7.69 kB
Markdown
# 🔄 版本更新记录
## v1.3.0
### ✨ Feature
- **主题系统重构**:新增「大地色系」主题,支持经典亮色 / 赛博朋克 / 大地色系三套主题自由切换
- **主题切换免刷新**:通过 `storage` 事件 + `body.{theme}-theme` class 动态切换即时生效
- **请求统计面板**:新增「请求统计」页面(Ctrl+4),展示近7天命中趋势、Top 10 命中接口、Top 10 功能模块命中排行、最近命中记录
- **最近命中记录增强**:增加"模块"列展示命中接口所属功能模块;去掉冗余的"响应"列;支持日期选择器和 URL 关键字输入框筛选过滤
- **从真实接口导入**:接口编辑表单新增「从真实接口导入」区域,输入真实 API URL 后一键抓取响应,自动生成 Mock.js 模板并应用到当前响应
- **全局键盘快捷键**:
- `Ctrl+1/2/3/4` — 快速切换功能模块/接口管理/系统设置/请求统计
- `Ctrl+S` — 保存当前表单(Modal/Drawer 打开时)
- `Ctrl+Shift+N` — 新建接口/功能模块
- `Ctrl+K` — 聚焦搜索框
- `Shift+?` — 显示快捷键帮助
- **入参匹配开关**:系统设置新增「接口入参匹配」和「响应入参匹配」两个显示开关,关闭后对应 UI 区域隐藏,同时后端运行时跳过对应匹配逻辑
- **响应级入参匹配**:每个响应内容支持独立配置入参匹配规则,同一接口内不同入参可自动匹配返回不同响应
- **记住功能模块**:接口管理页打开时自动恢复上次选择的功能模块
- **交互模式切换**:数据管理和接口表单均支持弹窗/抽屉模式切换
- **全列拖动**:接口列表所有列均支持拖动调整宽度,列宽自动持久化
- **数据管理抽屉模式**:从右侧滑出,宽度 1040px,上下撑满
- **接口复制新增**:可基于已配置接口一键打开新增弹窗并预填
### 🎨 UI
- **赛博朋克主题**:全新深色霓虹主题,采用青色 `#00f0ff` 为主色调,搭配绿色 `#00ff41`、黄色 `#f0e800`、洋红 `#ff00a0` 等霓虹色
- **大地色系主题**:暖色调自然舒适风格,主色 `#b87333`(铜色),搭配橄榄绿 `#6b8e23`、暗金 `#d4a017`、砖红 `#c0392b`
- **亮色主题颜色优化**:将组件中硬编码的刺眼霓虹绿 `#00ff41` 替换为标准柔和绿 `#52c41a`
- **去掉 V2 标签**:功能模块管理页面右上角 "V2" 标签移除
- **版本弹窗 Markdown 渲染**:版本更新记录弹窗采用 `react-markdown` 渲染,支持完整 Markdown 语法
### 🐛 Fix
- **主题切换彻底修复**:`cyber-theme.css` / `earth-theme.css` 全部选择器添加 `body.{theme}-theme` 前缀,关闭主题后不再污染其他模式
- **Modal/Drawer 亮色恢复**:移除各组件中硬编码的深色背景/边框/文字色,恢复 Ant Design 默认亮色样式
- **版本号可见性修复**:亮色模式下版本号按钮文字清晰可见
- **响应级入参匹配保存修复**:后端 `processInterfaceData` 和前端 `fetchInterfaces` 处理响应数据时补全 `paramMatchers` 字段
- **数据管理抽屉模式修复**:恢复 `displayMode` 状态、`useEffect` 监听及 `DataManagementDrawer` 导入
- **接口表单抽屉模式修复**:恢复 `interfaceFormDisplayMode` 状态及相关渲染逻辑
### 🔧 Technical
- **后端日志字段扩展**:`ruleManager.js` 记录 `mock_hit` 日志时新增 `featureName`(功能模块名称)和 `responseName`(命中响应名称)字段
- **stats API 增强**:`cgi-bin/stats?type=recent` 支持 `date`(YYYY-MM-DD)和 `url`(模糊匹配)查询参数过滤
- **新增 `app/cgi-bin/stats.js`**:后端统计 API,支持 overview/top/timeline/recent 四种查询维度
- **新增 `app/cgi-bin/proxy-fetch.js`**:后端代理抓取真实接口响应
- **新增 `app/cgi-bin/settings.js`**:CGI 处理器,支持 `GET`(读取)和 `PUT`(保存)设置
- **`ruleManager.js` 升级**:引入 `getSettings()` 读取 `settings.json`,接口级匹配和响应级匹配均受开关控制
- **数据结构扩展**:`Response` 对象新增 `paramMatchers` 字段
- **原生列宽拖动**:使用原生鼠标事件实现列宽拖动,移除 react-resizable 依赖
## v1.2.1
### ✨ Feature
- **界面优化**:功能模块页面支持列表/卡片视图切换,列表视图更加紧凑高效
- **代码优化**:下线 V1 版本代码,全面采用 V2 版本
- **界面简化**:移除版本切换功能,统一用户体验
- **新增功能**:新增mock数据管理弹窗
### 🐛 Fix
- **问题修复**:请求入参匹配在编辑删除后保存不生效(V1/V2)。前端在提交时始终显式发送 `paramMatchers` 字段,空数组表示清空,后端得以覆盖旧值。
## v1.2.0
### ✨ Feature
- **代码优化**:下线 V1 版本代码,全面采用 V2 版本
- **界面简化**:移除版本切换功能,统一用户体验
## v1.2.1-beta.5
### ✨ Feature
- **新增功能**:新增mock数据管理弹窗
## v1.2.0
### ✨ Feature
- **界面优化**:模块管理接口管理页面细节调整(v2版本)
- **设置更新**:设置界面添加切换 UI 版本
- **界面优化**:功能模块支持列表展示(v2)
- **界面优化**:页面细节调整
- **新增**:接口管理页支持"复制新增"。可基于已配置接口一键打开新增弹窗并预填,响应模式会为每个响应生成全新ID并正确映射激活响应;其余配置(分组、参数匹配、重定向设定等)保留。保存后自动刷新缓存。
### 🐛 Fix
- **问题修复**:请求入参匹配在编辑删除后保存不生效(V1/V2)。前端在提交时始终显式发送 `paramMatchers` 字段,空数组表示清空,后端得以覆盖旧值。
- **问题修复**:接口列表分组展示 tag 问题处理
- **问题修复**:编辑接口保存折叠内容丢失
## v1.1.2
### 🐛 Fix
- **问题修复**: 接口管理中禁用启用功能失效
## v1.1.1
### 🆕 更新功能
- **项目优化**:版本号同步显示在页面右上角,支持点击查看详细更新记录
- **项目优化**:新增模拟响应入参校验功能,提升数据准确性
- **项目优化**:接口管理列表支持快速切换多个模拟响应数据
- **项目优化**:清理并标记项目中未使用的文件,提升代码质量
- **项目优化**:`模拟响应`在 `res.header` 中添加响应信息,方便标识
- **项目优化**:支持接口延迟响应功能,添加和编辑的时候可以设置
- **项目优化**:接口管理支持分组功能
- **界面精简**:前端页面支持多维度排序,提升数据管理效率
- **界面精简**: 列表支持设置外显列
- **界面精简**:模拟响应数据编辑框支持全屏模式,新增 ESC 快捷键快速关闭
- **界面精简**:移除模拟数据编辑框右上角冗余的 JSON 标签
### 🐛 Fix
- **问题修复**: 模块禁用中接口任然被模拟代理使用了
## v1.1.0
### 🆕 更新功能
- **多响应管理系统**:每个接口支持配置多个不同的响应内容
- **响应切换功能**:可在多个响应之间快速切换,便于测试不同场景
- **响应描述系统**:为每个响应添加名称和详细描述
- **JSON格式化预览**:响应内容支持JSON格式化显示和编辑
- **响应管理界面**:全新的响应管理卡片式界面
- **接口匹配引擎重构**:大幅简化匹配逻辑,提升匹配性能
- **正则表达式缓存**:避免重复编译正则表达式,提升匹配效率
- **代码简化**:移除复杂的参数匹配功能,专注核心URL匹配