[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81461":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":15,"stars7d":14,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":17,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":19,"hasPages":19,"topics":21,"createdAt":10,"pushedAt":10,"updatedAt":22,"readmeContent":23,"aiSummary":24,"trendingCount":16,"starSnapshotCount":16,"syncStatus":14,"lastSyncTime":25,"discoverSource":26},81461,"ApiMocktle","xiaohuiduan\u002FApiMocktle","xiaohuiduan","使用教程参考：https:\u002F\u002Fwww.cnblogs.com\u002Fxiaohuiduan\u002Fp\u002F19976219\u002Fapimocktletool-qnfkf IDEA导入插件：https:\u002F\u002Fgithub.com\u002Fxiaohuiduan\u002FApiMocktle-java-plugin","",null,"TypeScript",34,4,2,1,0,3,42.4,false,"main",[],"2026-06-12 04:01:33","# ApiMocktle\n\n**Mock**（模拟，类似鹦鹉学舌，突出 API 模拟能力）+ **Turtle**（龟，象征数据结构稳定）→ **Mocktle**。一个基于 **Tauri v2 + React + Rust + SQLite** 的本地优先 API 管理桌面应用。\n\n当然上面的名字是先射箭画靶，AI给我取得，真实原因是因为我养了鹦鹉🦜和乌龟🐢，然后Deepseek给我取了这个名字\n\n它把注册登录、项目管理、接口目录、文档与数据模型编辑、环境变量、请求调试、Swagger\u002FOpenAPI 导入导出等能力整合到一个可离线运行的桌面应用里，数据完全掌握在用户本地。\n\n## 更新日志\n\n### v1.3.4 (2026-05-28)\n\n- 🔀 **RunTab 数据分离** — 运行时信息（参数、Body、脚本等）与 API 定义分离存储，运行时修改不再覆盖文档定义\n- 💾 **runTabInfo 独立存储** — 新增 `run_tab_json` 列存储运行时信息，只保存与文档定义不同的部分\n- 🔄 **一键复原增强** — 复原弹窗支持三个选项：关闭、复原到文档定义、复原到保存点\n- ⌨️ **Ctrl+S 修复** — 修复 Ctrl+S 保存只在当前激活的子 Tab 生效，避免重复触发\n- 📦 **数据库迁移** — 自动为现有数据库添加 `run_tab_json` 列\n\n### v1.3.3 (2026-05-28)\n\n- 🔧 **修复一键复原** — 修复运行 Tab 复原按钮无法还原 Query 参数、Headers、Cookie 和脚本的问题，现在能正确恢复所有字段到文档原始值\n- ✂️ **脚本 API 简化** — `pm.environment` 重命名为 `pm.env`，更简短易写（涉及脚本引擎、类型定义、自动补全、帮助文档）\n- 📝 **会话变量面板** — 新增会话变量管理面板，支持查看和编辑跨请求共享的会话级变量\n\n### v1.3.2 (2026-05-25)\n\n- 🏷️ **多项目标签页** — 支持同时打开多个项目，像浏览器标签页一样切换，每个项目独立维护接口树、环境和标签状态\n- 🧭 **项目标签栏** — 顶部标签栏支持右键菜单（关闭、关闭其他、关闭右侧、全部关闭、复制名称），活跃标签高亮显示\n- 🔄 **快速切换** — 标签栏新增项目快速切换下拉 + 刷新按钮 + 返回项目列表入口\n- 🎨 **布局重构** — 用户菜单和设置按钮移至左下角侧边栏底部，刷新和项目列表移至标签栏同一行\n- 📊 **项目列表统计** — 项目卡片展示 API 数量、模型数量、快捷请求数量，快速概览项目规模\n- 👤 **侧边栏用户菜单优化** — 侧边栏只显示用户图标，点击弹出菜单展示用户名和操作项，避免长用户名撑开布局\n- 🕐 **运行历史记录** — 接口运行和快捷请求运行自动保存历史（每个接口最多 10 条），右侧 Drawer 查看完整请求参数和响应详情\n- ⚠️ **异常也保存历史** — 请求异常（未登录、无权限等）同样保存错误信息，方便追溯问题\n- 🧹 **消除控制台警告** — 修复 antd `Input` `bordered` 废弃 prop，修复 react-resizable-panels 布局尺寸初始值不合理问题\n\n### v1.3.1 (2026-05-24)\n\n- 🐛 **修复菜单树双击选中文字** — 禁用接口管理树形目录的双击文本选择\n- 🔄 **编辑\u002F运行场景区分示例值** — 编辑模式下显示示例值，运行模式下优先显示请求值（已填入的参数）\n\n### v1.3.0 (2026-05-18)\n\n- 💬 **结构化错误提示** — HTTP 请求和代理连接错误现在展示中文分类消息 + 修复建议 + 可展开技术详情\n- 🧭 **错误分类** — 后端自动区分 DNS 解析失败\u002F连接被拒\u002F超时\u002FTLS 错误等 8 种场景，给出针对性解决方案\n- 🔄 **一键重试** — 错误面板提供重试按钮，快速重新发起请求\n- 📄 **自动切到响应** — 运行请求成功后，结果区域自动选中「响应内容」标签页\n- 🔒 **跳过证书验证** — HTTPS 请求支持一键跳过 TLS 证书校验，方便调试自签名证书接口\n- ✏️ **内联标题编辑** — 快捷请求和修改文档页面支持内联修改标题，侧边栏即时同步\n- ⌨️ **Ctrl+S 保存** — 所有保存页面支持 Ctrl+S\u002FCmd+S 快捷键\n- 🐛 **修复技术详情不展开** — 修复错误面板中「技术详情」无法展开的问题\n\n### v1.2.0 (2026-05-13)\n\n- 🌐 **全局网络代理** — 设置页面新增「网络代理」标签页，支持 SOCKS5 和 HTTP(S) 两种代理类型\n- ⚙️ **配置持久化** — 代理配置写入 `app_data_dir\u002Fconfig\u002Fapp_config.json`，应用更新不丢失\n- 🔄 **实时同步** — 修改代理设置后，请求页面指示器和实际请求即时生效\n- 🏷️ **代理指示器** — RunTab\u002F快捷请求\u002F结果页显示代理类型 Tag，悬停显示 host:port\n- 🔗 **测试连接** — 支持自定义 URL 测试代理连通性\n- 🎨 **图标库扩展** — 图标数量扩展至 885 个，分类合并为 7 类，优化选择器 UI\n\n### v1.1.1 (2026-05-12)\n\n- 📐 **运行 Tab 布局优化** — 添加可拖拽分隔面板，修复横向溢出问题\n- 🔧 **移除 Auth 模块** — 移除快捷请求和文档编辑中的认证相关模块\n- 🗂️ **项目列表优化** — 优化项目列表页布局和卡片样式\n\n### v1.1.0 (2026-05-11)\n\n- ✨ **粒子动效** — 登录页和项目列表页添加粒子动效背景及花纹\n- 📎 **文件上传** — 支持 form-data 文件上传功能\n- 🏷️ **版本号管理** — 添加基于 Git tag 的版本号显示\n- 🐛 **Bug 修复** — 修复 JsonSchema 引用模型选择器、特殊字段删除线样式等\n- 🧹 **UI\u002FUX 优化** — 优化交互细节，去除无用面板\n\n### v1.0.1 (2026-05-10)\n\n- 📄 **响应格式化** — 运行界面响应内容自动格式化 JSON\n- 💡 **字段提示** — API 文档中的字段名称和描述添加工具提示\n- 🔄 **环境参数系统** — 完善全局\u002F环境参数合并、启用开关、变量输入增强\n- 🐛 **Bug 修复** — 修复环境管理表头重复 key 警告、禁用参数时无法删除条目等问题\n\n## 为什么做这个项目\n\n相比依赖外部服务的 API 管理工具（如 Apifox、Postman），更希望把常用的接口管理能力放到一个可以自行审计、运行和改造的代码库里。结合 Tauri 桌面框架，做到真正的本地优先、离线可用、无数据外泄风险。（例如著名的API工具投毒事件）\n\n## 软件部分功能截图\n1. 项目管理列表\n\u003Cimg width=\"1814\" height=\"1178\" alt=\"image\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F9869cabb-4cb3-4e86-962f-def1888b19db\" \u002F>\n\n3. 接口管理\n\n\u003Cimg width=\"1814\" height=\"1178\" alt=\"image\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F8f16fe8f-9e3e-4744-92b2-461d84953700\" \u002F>\n\n\n3. 接口运行\n\u003Cimg width=\"2019\" height=\"1277\" alt=\"image\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F4faf4b92-1e3e-4add-961c-a7398a35e600\" \u002F>\n\n\n4. 项目设置\n![项目设置](.\u002Fassets\u002Fsettting.png)\n\n5. 同步设置以及案例\n![同步设置以及案例](.\u002Fassets\u002Fsync.png)\n## 核心能力\n\n### 项目管理\n- 用户注册、登录、记住密码 + 记住登录状态（可选 1\u002F3\u002F7\u002F30 天\u002F永久）\n- 创建、重命名、删除项目，支持项目图标\n- 成员管理：搜索用户直接加入项目，支持 owner\u002Feditor\u002Fviewer 三种角色\n- 修改密码\n\n### 接口管理\n- 树形目录，支持拖拽排序、重命名、复制、移动、删除、回收站恢复\n- 资源类型：API 接口 \u002F Markdown 文档 \u002F 数据模型 \u002F 快捷请求\n- 接口编辑：路径、Query\u002FPath\u002FHeader\u002FCookie 参数、Body（JSON\u002FXML\u002Fform-data\u002Furl-encoded\u002Fraw\u002Fbinary）\n- Body JSON 支持树形 Schema 编辑器（字段名、类型、示例值、说明）\n- 返回响应支持多个 HTTP 状态码，每个响应独立定义 JSON Schema\n- 数据模型支持 `$ref` 引用，跨接口复用 Schema 定义\n\n### 环境管理\n- 前置 URL、环境变量（支持 `{{varName}}` 模板语法，运行时自动替换）\n- 全局 Header \u002F Query \u002F Cookie \u002F Body 参数\n- 个人本地值与团队值的优先级覆盖\n\n### 请求调试\n- Run Tab 独立运行接口，查看响应内容\u002F响应头\u002FcURL 命令\n- 支持 Query 参数 + Body JSON 同时发送\n- 环境变量 `{{x}}` 在运行时自动解析\n- 一键填充：从 Schema 示例或 default 值自动生成 Body JSON\n\n### 导入导出\n- 导入：OpenAPI 3.x \u002F Swagger 2.0 JSON\u002FYAML，静默合并到当前项目\n- 导出：完整 OpenAPI 3.0 \u002F Swagger 2.0 规范文档（含 paths + definitions\u002Fschemas）\n- cURL 导入单条请求\n- 接口分享：导出 Markdown 文档\n\n### 个人 Token（YAPI 兼容）\n- 用户创建个人 Token，用于[Java插件](https:\u002F\u002Fgithub.com\u002Fxiaohuiduan\u002FApiMocktle-java-plugin)同步\n- `\u002Fapi\u002Fproject\u002Flist` 返回用户有权限的项目列表\n- 插件可选择目标项目进行同步\n\n## 技术栈\n\n| 层 | 技术 |\n|---|---|\n| 桌面框架 | Tauri v2 |\n| 前端 | React 18 + React Router v7 + Vite |\n| UI | Ant Design v5 + TailwindCSS + Lucide React |\n| 编辑器 | Monaco Editor（JSON 输入）+ ByteMD（Markdown） |\n| 后端 | Rust + Axum（YAPI HTTP 服务） |\n| 数据库 | SQLite（rusqlite） |\n| 实时协作 | Yjs CRDT（在线文档） |\n\n## 项目结构\n\n```text\nsrc\u002F                   前端源码\n  app\u002F                 页面路由\n  components\u002F          UI 组件（ApiTab、JsonSchema、项目面板等）\n  contexts\u002F            React Context（auth、menu-helpers、global）\n  utils\u002F               工具函数（Markdown\u002FHTML 导出）\n\nsrc-tauri\u002F             Rust 后端\n  src\u002F\n    commands\u002F          Tauri 命令（auth、projects、menu_items、environments、imports、exports、request_runner）\n    db\u002F                SQLite 仓储（auth_repo、project_repo、menu_repo、personal_token_repo 等）\n    services\u002F          业务逻辑（导入解析、密码加密、YApi 转换）\n    http\u002F              YAPI 兼容 HTTP 服务\n  Cargo.toml\n```\n\n## 快速开始\n\n### 环境要求\n\n- Node.js `>= 20`\n- pnpm `>= 9`\n- Rust (stable toolchain)\n\n### 安装依赖\n\n```sh\npnpm install\n```\n\n### 启动开发环境\n\n```sh\npnpm tauri:dev\n```\n\n### 构建\n\n```sh\npnpm tauri:build\n```\n\n## 数据库\n\n- 默认位置：`%APPDATA%\u002Fcom.apimocktle.app\u002Fruntime\u002Fapimocktle.sqlite`（Windows）\n- 启动时自动创建所需表结构\n- 表包括：users、sessions、projects、project_members、menu_items、recycle_items、meta、share_links、personal_tokens\n\n## 导入导出说明\n\n- 导入支持 `.json`、`.yaml`、`.yml`\n- OpenAPI 3.x 和 Swagger 2.0 均可导入\n- 导出生成完整的 OpenAPI 3.0 \u002F Swagger 2.0 规范文档\n- 导入采用静默合并策略，不会清空已有资源\n\n## 致谢\n\n1. 本项目的界面与交互参考了 [Codennnn \u002F Apifox-UI](https:\u002F\u002Fgithub.com\u002FCodennnn\u002FApifox-UI)。感谢原作者提供高质量的 UI 设计还原与开源分享，这个项目在此基础上继续做了适配、重构和演进。\n2. 感觉[qq201128 \u002F Apifox-Local](https:\u002F\u002Fgithub.com\u002Fqq201128\u002FApifox-Local)在Apifox-UI的基础上增加了很多功能，能够让我在其上面的基础上添加更多的功能。\n3. 感谢mimo 100T计划，给我提供的免费2亿credits套餐（虽然我一天就蹬完了🤣）。\n4. 感谢伟大的DeepSeek V4 pro，在五一期间降价，让我疯狂蹬，花费却不到100，完成了项目所有内容。\n","ApiMocktle 是一个基于 Tauri v2、React 和 Rust 的本地优先 API 管理桌面应用。它集成了注册登录、项目管理、接口目录、文档与数据模型编辑、环境变量、请求调试以及 Swagger\u002FOpenAPI 导入导出等功能，所有数据均存储在用户本地，确保数据安全和隐私。该工具支持多项目标签页切换、运行时信息分离存储、结构化错误提示及全局网络代理配置等特性，特别适用于需要离线工作或对数据保密性有高要求的开发场景。通过提供丰富的功能和灵活的数据管理机制，ApiMocktle 为开发者提供了一个高效且可靠的本地 API 管理解决方案。","2026-06-11 04:05:09","CREATED_QUERY"]