Skip to content

Releases: freewu/api-manager

v0.5.1

Choose a tag to compare

@github-actions github-actions released this 25 Aug 15:40

版本 v0.5.1 更新内容

🎭 Mock 服务与占位符(本轮重点)

  • Mock 服务响应体支持 mock.js 语法:@cname/@integer(1,100) 等占位符(含参数)、键规则 key|count / key|min-max /
    key|min-max.d / key|1 / key|+step,以及自定义占位符(服务端用 boa 纯 Rust JS 引擎完整执行占位符代码,默认模板与 demo
    写法均可运行)
  • list|1-5 数组规则修正:按模板重复随机生成 1~5 条(与 mock.js 官方语义一致,单元素模板也能生成多条)
  • Mock 页签响应体输入 @ 弹出占位符选择器,选中后插入光标处,任意输入法均稳定触发;响应区新增「🧪 测试」按钮实时预览渲
    染结果
  • Mock 服务读取最新配置:启动/停止前自动保存当前接口,运行中保存即热重载,无需重启
  • Mock 占位符弹窗改为分类滚动切换(左侧导航 + 右侧面板)、加宽每排 4-5 个;demo 新增 @zodiac 星座占位符演示

📦 对象管理

  • 新增**「生成一条 Mock 数据」**按钮(按对象属性 + 引用递归生成示例 JSON,防循环引用),按钮靠右紧贴「添加属性」
  • 属性表行高加大、「添加属性」按钮改绿色
  • 修复选中对象后黑屏崩溃(Hooks 调用顺序违规)
  • 生成演示案例后对象列表自动刷新
  • 代码生成字段名转换:Java 下划线转驼峰(user_name → userName)、Go 每段首字母大写(→ User_Name)

📝 接口文档 tab

  • 类型新增 Datetime / Date / Time / Any(旧自由文本自动归一化)
  • 对象名改为弹窗选择对象(与对象管理一致),选中后可一键清空

🔧 其他修复

  • HTTP Body 选 JSON 时不再误显示 GraphQL 的 query 占位符
  • 全部导入格式统计接口协议 4 类(Http/WebSocket/GraphQL/Socket.IO)
  • 自定义占位符编辑弹窗改全屏 + JS 语法高亮 + 测试运行,测试不通过禁止保存/启用

🛠 工程

  • lib.rs / export.rs / import.rs 大规模拆分模块化;测试移至独立 *_test.rs
  • 新增 GitHub Actions 远程打包发布(Windows / macOS / Linux)
  • 版本号同步至 v0.5.1(已打 tag 推送)

v0.5.0

Choose a tag to compare

@freewu freewu released this 24 Aug 16:22

🎯 数据生成(核心新功能)

  • 数据生成入口:对象右键新增「数据生成」,配置属性 mock / 参与状态,导出 JSON 或 SQL,异步生成不阻塞 UI
  • 生成记录日志:.gen_log/<时间戳>_.json 单文件保存(含提交的数据配置 + 耗时)
  • 记录管理页面(替代弹窗,与请求历史布局一致):
    • 左侧记录列表(格式徽标 / 对象名 / 时间 / 条数 / 耗时,时间倒序)
    • 右侧详情(基本信息 + 提交属性配置表),进入页面自动刷新
    • 详情操作:「打开导出目录」「重新生成」(预填原配置,生成后自动刷新)
  • 生成增强:支持 CSV 格式(逗号/引号/换行自动转义)、属性拖拽排序、属性带描述列、条数千分位展示

📁 对象管理

  • 建表语句 tab:按属性生成 MySQL CREATE TABLE,SQL 语法高亮(类型映射:string→VARCHAR、number→BIGINT、boolean→TINYINT
    、object/list→JSON、引用→BIGINT 等)
  • 版本倒排:版本号大靠上,默认选中最新版本
  • DDL/建表文件导入:按表 COMMENT 命名、按文件名建分组、支持拖拽导入
  • 属性增强:新增日期类型与 mock 值;「说明」改为「描述」;object 类型引用对象弹窗树状选择(分组可折叠)
  • 分组管理:复制分组(uuid 重新生成)、废弃标记持久化、组内对象自动废弃展示、右键统计
  • Java 代码生成:Lombok / 原生两种风格 tab 切换;Dart 语言图标接入

v0.4.0

Choose a tag to compare

@freewu freewu released this 24 Aug 11:06

🔧 功能新增

  1. Curl 命令导入新建接口
  • 左侧导入菜单新增「Curl 命令」,弹窗粘贴请求串即可创建 HTTP 接口
  • 支持 -X/-H/-d/--data*/-F/-u/-G、单双引号与 " 转义、行尾 \ 续行、URL 内 query 自动拆分、body 模式自动推断(JSON / 表
    单)
  1. POST/PUT/PATCH 默认 Body 页签
  • 左侧列表选中 POST/PUT/PATCH 接口时默认展示 Body 页签(GET 等仍默认 Query)
  1. 请求历史比对 ESC 退出
  • 点击「调用结果比对」进入勾选模式后按 ESC 退出;比对视图内按 ESC 返回——全程键盘可退

🌐 WebSocket / Socket.IO

  1. 实时接口握手提示
  • Query / Headers 页签加「握手」徽标,面板顶部提示条说明参数只在握手阶段生效,避免误改
  1. 历史列表实时协议名显示
  • WS / Socket.IO 请求在历史列表直接显示协议名(绿色 WebSocket / 橙色 Socket.IO),不再显示 HTTP method

🎨 视觉体验

  1. 加载动画:黑客帝国字符雨
  • 全屏绿色字符雨,掉落字符为接口协议与 method(GET/POST/WS/SOCKET.IO/GRAPHQL…),品牌标题霓虹发光

v0.3.0

Choose a tag to compare

@freewu freewu released this 24 Aug 00:43

📡 GraphQL 接口支持(新增协议类型)

  • 新建接口时协议选择新增 GraphQL 类型(带专属图标)
  • GraphQL 接口固定使用 POST 方法(不可更改)
  • Body 仅支持 JSON 格式,新建时默认选中 Body 页签
  • 统计面板单独统计 GraphQL 接口数量(与 HTTP/WebSocket 等区分)
  • 左侧接口树中 GraphQL 接口显示专属图标

✨ 编辑器与交互增强

  • 接口描述支持 Markdown:编辑 / 预览双模式切换(✏️ 编辑、👁 预览),预览由后端渲染,支持标题、表格、代码块、列表等
  • 新建接口弹窗:协议选择改为图标 radio 卡片形式并加宽,更直观
  • 所有弹窗 / 弹出菜单支持 ESC 键关闭(新增对象、设置、导入、右键菜单等统一生效)

🔧 工程与杂项

  • 加载页 loading.html 移入 src 目录,tauri 窗口 URL 同步更新
  • 版本号更新至 v0.3.0(已合并 main 并打 tag)

v0.2.2

Choose a tag to compare

@freewu freewu released this 22 Aug 14:25

v0.2.2 版本更新汇总

🚀 导入 / 导出格式大幅扩展(新增 17 种)

  • 新增完整导入导出:Apifox、Apipost、RAML、WADL、YApi、Eolink、Insomnia、JMeter(.jmx)、apiDoc(api_project.json +
    api_data.json)
  • RAP2 导入导出:项目 / 单接口双格式自动识别,URL query 自动解析为参数
  • 十种扩展格式(Rust + TS 全链路):apidog、bruno、apizza、nei、doclever、io-docs、easydoc、docway、hoppscotch、
    metersphere
  • HAR 抓包文件导入
  • 导入 / 导出格式选择使用自绘下拉 + 官方图标,设置页新增各格式展示开关(默认仅开启 apifox/apipost)
  • 修复:apifox 导入空分组与重复分组;默认导出格式下拉过滤

💻 代码生成(WebSocket 多库支持)

  • 15+ 语言支持多库切换(注释含官网 / 编译参数):C(libwebsockets/libuv-ws/wslay)、
    C++(Boost.Beast/libwebsockets/uWebSockets/Qt)、Java(JSR-356/Spring/Netty/OkHttp)、
    Ruby(faye-websocket/websocket-ruby/Sinatra/Rails ActionCable)、PHP(Swoole/OpenSwoole/Ratchet)、
    Swift(URLSession/Starscream/Network.framework)、Perl(Mojo/AnyEvent)、Julia(WebSocket.jl)、
    Kotlin(OkHttp/Java-WebSocket)、Erlang(gun)、PowerShell(.NET 原生)、Lua(lua-resty-websocket/lua-websocket)、
    Python(websockets/websocket-client)、Rust(tokio-tungstenite/tungstenite)、Delphi(Indy
    10/Synapse/Websocket4Delphi)
  • 语言下拉框展示各语言 logo 图标(内置图片,含 csharp/perl/delphi 新图标)

🔍 搜索与历史

  • 搜索框一键清除 + 高级搜索(接口类型 + Method 多选过滤),修复递归过滤丢失
  • 查询时自动隐藏空分组
  • 调用历史新增同接口 Diff 比对(选中 2 条自动对比)、历史列表按接口过滤
  • 统计区分 HTTP / WebSocket 接口
  • 示例页签显示记录数角标,保存后即时刷新

🎨 UI / 体验

  • 独立加载页 + 全屏加载动画(防白屏),window 背景色统一深色
  • 导入接口刷新后保留分组展开状态
  • 多处禁用右键默认菜单(导出窗口 / 历史视图 / 侧边栏底部)
  • 设置窗口文案与界面精简、开关右对齐、语言选项去 emoji 缩写

🔧 工程重构

  • codegen.ts(4136 行)按语言拆解到 src/utils/code/(23 个语言文件 + shared + index),输出与拆分前 162 项对比一致
  • App.tsx(1739 行)按模块拆出 10 个
    hooks(settings/ui/bootstrap/workspace/requests/envs/mock/modals/imports/vcs),Landing / ApiDocModal 等改为
    React.lazy 懒加载按需分包

v0.2.1

Choose a tag to compare

@freewu freewu released this 20 Aug 17:44

v0.2.1 更新内容

🆕 WebSocket 接口类型(本次最大新功能)

  • 新增 WebSocket 接口类型:独立于 HTTP 的编辑/发送/交互流程,支持消息发送、实时交互记录(连接/发送/接收/错误)、连接管
    理(连接/断开)
  • 代码生成:WebSocket 客户端代码生成(支持路径参数替换),新增对应演示用例与测试服务器 tests/websocket-server.py
  • 交互完善:专用图标、无状态码/方法展示、模式切换、markdown 文档支持;去掉 WS 的 Path 页签,演示仅保留"回显"接口并回传
    header/query 参数
  • 修复:连接失败问题——不再把 Header 值当作 WebSocket 子协议发送(浏览器 API 本就无法自定义请求头),描述补充测试服务启
    动与测试步骤说明
  • 请求日志:WS 发送的消息与回显写入历史日志(一次发送一条记录)
  • 保存示例:WS 请求成功后可将发送消息与回显保存为示例
  • 新建工作区的演示案例内置 WebSocket 分组

🏷️ 已废弃标记

  • 支持标记/取消标记已废弃接口与分组,侧栏可按废弃状态筛选,统计含废弃数量,废弃项以斜体+红色删除线展示
  • 导出选择树中废弃项带角标标识,markdown 文档标题带"(已废弃)"标注,分组废弃自动继承到其下接口
  • 右键菜单"标记已废弃"调整到"删除"上方

📄 导出

  • 修复导出 markdown/html 时接口重复问题(嵌套分组去重,前端只提交顶层路径)
  • HTML 导出支持悬浮导航栏(设置可选关闭/左侧/右侧)

📦 版本管理

  • 版本信息支持"恢复到该版本"按钮(恢复前自动备份为新版本),保存版本无改动时提示已是最新

⚡ 性能与工程

  • Vite 分包 + 懒加载:单文件 528KB → 首屏 ~380KB,highlight.js 与代码生成页签、7 个弹窗组件按需加载
  • 代码拆分重构:i18n 按语言、样式按功能模块、App 拆分为顶栏/落地页/右侧面板/弹窗组件
  • 修复最近打开工作目录列表中出现已不存在目录的问题

v0.1.6

Choose a tag to compare

@freewu freewu released this 18 Aug 13:05

1️⃣ 新增「响应」页签 852a828

  • 编辑器新增「响应」页签:返回成功 / 返回失败条目可增删、改名、改状态码、Content-Type、Body
  • 文档页签的「返回」部分按响应条目逐条生成(### 名称 + HTTP 状态徽标 + 字段表)
  • 旧接口文件无 responses 键时自动迁移(显式空列表尊重用户删除)
  • OpenAPI 导出响应改用响应条目

2️⃣ 相关修复

  • fd3dce8 点击「响应」页签时隐藏下方请求/响应面板
  • 29e13d1 文档页签改为自动生成视图(去掉「添加字段」按钮和「操作」列)
  • 82f342a 分组 Markdown 同一分组只生成一次分组信息
  • bdce03e 修复分组保存 .md/.html 失败(目录误走单接口 read_api)

3️⃣ 请求历史日期文字提示 6bda7f8

  • 分组标题「今天 / 昨天 / 前天」用文字替换日期(完整日期保留在悬停提示)

v0.1.5

Choose a tag to compare

@freewu freewu released this 17 Aug 11:22

🧪 接口测试

  • 支持 GET / POST / PUT / DELETE / PATCH 等常用方法
  • 完整支持路径参数 / Query / Headers / Body,Body 支持 raw / JSON / XML / 表单 / 二进制文件五种模式
  • JSON / XML 一键格式化,响应查看状态码、耗时、大小、Headers 与 Body(JSON 语法高亮)
  • 请求历史自动记录,随时回看、一键回填重发

🎭 Mock 服务

  • 一键启动本地 Mock 服务(默认端口 5050),自动扫描所有启用 Mock 的接口
  • 支持路径参数、请求延迟、模板变量与全局环境变量
  • 无需后端联调,前端开发即刻起步

📁 目录即集合

  • 打开应用选择一个工作目录,目录结构即接口集合结构,一个接口一个 JSON 文件
  • 天然支持 Git 版本管理,接口定义、参数、Mock 数据全部可追溯、可协作
  • 接口支持多版本保存、左右对比差异、随时回退到任意历史版本

🌐 全局环境变量

  • 开发 / 测试 / 生产多环境一键切换,{{变量名}} 自动替换到 URL / Headers / Query / Body / Mock 响应
  • 环境变量集支持拖动排序、右键编辑/复制/删除;每个变量含现有值、默认值与说明

💻 代码生成与导出

  • 一键生成 20+ 种语言 / 框架的请求代码(curl、JavaScript、Python、Java、Go、Rust 等)
  • 一键导出 Postman Collection / OpenAPI 3.0 / Docsify 文档站点
  • 一键导入 Postman Collection / OpenAPI (Swagger) / Markdown 接口文档,集合级变量自动迁移

📝 接口文档

  • 内置接口文档页,自动从请求配置与 Mock 响应体推导参数(类型、嵌套字段、说明)
  • 支持手动补充修正,可导出 Markdown 文档

📊 统计与演示

  • 分组 / 工作区维度统计接口数、Mock 启用数与请求方法分布
  • 内置演示工作区(用户管理 / 订单管理),开箱即用体验全部功能

🖥️ 系统托盘与更新

  • 关闭窗口最小化到托盘,托盘菜单快速显示/隐藏窗口、启停 Mock、切换语言检查更新
  • 启动时自动检查 GitHub Releases,发现新版本弹窗提醒并可一键跳转下载

🗂️ 界面与体验

  • Postman 风格布局:左侧接口树(搜索 / 分组 / 增删改 / 复制)、中间请求编辑器、下方响应面板
  • 三语界面(简体中文 / 繁體中文 / English)随时切换
  • 轻量原生(Tauri 2 + Rust),单文件分发,无需安装,拷贝即用