Files
opsxapi/docs/api-tools-comparison.md
logan 2bb4ef7a95 桌面 GUI 外链修复 + 主题顺序调整(含结构扁平化进行中的工作区基线)
- 集成 tauri-plugin-opener:Cargo/lib.rs/capabilities/npm 四处接线,新增 src/openExternal.ts(桌面走 opener,浏览器回退 window.open,相对路径绝对化)
- 关于页 4 个链接、活动栏官网菜单、代理错误横幅 2 处健康检查链接全部改走 openExternal,桌面端可正常跳转
- 设置→外观 主题顺序调整为 深色/浅色/跟随系统
- release 二进制重编并验证(浏览器实测关于页链接可开文档页)
- 附带工作区中未提交的扁平化重构现状(另一会话进行中)
- homepage 落地页与文档终检通过(8787 / 与 /docs 双 200)
2026-10-16 03:03:36 +08:00

19 lines
4.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# OpsxAPI 与 Bruno / Hoppscotch / Yaak 对照(2026-10-15)
评估以本机 `/Users/logan/devops/demo/api/{bruno,hoppscotch,yaak}` 的源码为准;这里比较交互模式,不代表三个项目的全部功能或版本承诺。OpsxAPI 保持桌面请求工作台 + 内网 Mock / 文档分享的产品方向。
| 任务 | 参照实现 | OpsxAPI 现状 | 取舍与优先级 |
| --- | --- | --- | --- |
| 阅读 HTTP 响应 | Bruno 的响应格式选择和响应头计数(`bruno-app/src/components/ResponsePane/index.js`、`QueryResultTypeSelector/index.jsx`);Yaak 的 Pretty / Raw 与复制、保存动作(`yaak-client/components/HttpResponsePane.tsx`) | 已有 Raw、响应头、状态与耗时。此次补齐 Content-Type 判断、折行、按行数增长的行号、可折叠 Pretty JSON、键/值/标点分色、窄窗布局、图标复制及大响应保护 | **高,已落地基础项。** 下一步优先做响应内搜索;图片/PDF/时间线先按真实需求排期。 |
| 请求与响应示例 | Hoppscotch 将当前响应保存为具名示例(`hoppscotch-common/src/components/http/Response.vue`) | 文档有响应示例,Mock 可从实际响应生成。此次增加“存为示例”,按状态码写入文档,同状态码先确认覆盖 | **高,已落地基础项。** 后续可考虑为同一状态码保留多条具名示例,但需先扩展内部文档结构和导入/导出格式。 |
| 环境与变量 | Hoppscotch 在参数和请求体编辑器中突出环境变量(`http/Parameters.vue`、`RawBody.vue`);Yaak 将主题、界面与代理设置分组 | OpsxAPI 已有环境切换、相对路径拼接、变量补全与本机代理。此次外观新增跟随系统主题 | **中。** 在请求地址旁持续展示解析后的目标;缺失变量应就地提示,不把更多说明塞进设置页。 |
| 自动化测试 | Hoppscotch 的请求前脚本、测试结果和 runner(`http/PreRequestScript.vue`、`http/test/Runner.vue`);Bruno 的测试结果与时间线(`ResponsePane/index.js`) | 已有用例步骤、断言、变量提取、报告和定时运行;没有任意脚本能力 | **中。** 先改善失败步骤定位及上次运行对照。脚本沙箱、变量作用域和权限边界明确后再引入脚本,不直接复制整个测试平台。 |
| 设置与快捷操作 | Yaak 将代理、证书、快捷键、主题分开(`yaak-client/components/Settings/Settings.tsx`) | 代理、外观、大模型、数据管理、Mock 服务已分区;快捷键和证书管理尚无完整入口 | **中。** 先补“发送 / 保存 / 切换请求 / 搜索”的快捷键及可发现提示,再做冲突处理;证书管理需结合桌面传输实现。 |
| 请求数据生成 | Bruno 在编辑器补全中提供 `$` 动态变量,并在 Mock 响应生成对话框中按 schema 生成示例;Hoppscotch 在编辑器高亮预定义变量(`HoppPredefinedVariables.ts`),通用设置页未单列随机规则;Yaak 使用请求模板函数及 Faker 插件 | OpsxAPI 的 `@` 表达式、字段匹配和预览在发送请求时生效,与 8788 内网 Mock 服务独立。保留开关、规则及预览,将“数据生成”从设置一级导航移到“网络 → 请求数据生成”,并在 HTTP Body 编辑器提供入口 | **保留能力、降低层级。** 暂不引入插件市场、脚本式生成器或更多设置开关;如后续发现规则维护频繁,可再做请求级规则作用域。 |
| 大模型配置 | OpsxShell 的供应商列表、详情表单、连接测试和明确的默认状态(`opsxshell/src/components/settings/AiProviderSettings.tsx`) | 目前仅支持 OpenAI 兼容 Chat Completions,用于自动化测试用例生成;按“模型 / 连接 / 测试与保存”重排并显示默认、未保存与测试反馈 | **保持协议边界。** OpsxShell 的 Anthropic、Responses、多模型与计费字段依赖其专用客户端和数据结构,不能仅通过增加表单照搬。当前 API Key 随工作区保存,团队空间同步会包含此字段,后续应单独评估系统凭据存储。 |
| 分享与 Mock | 三者重心分别偏向可复现集合、协作及本地请求体验 | OpsxAPI 的文档与 Mock 均能经独立本机服务分享到内网,且有服务开关与访问控制 | **保持优势。** 下一步应优先完善文档与 Mock 的同源状态提示、发布差异预览和真实内网访问反馈。 |
交互原则:保留“响应体 / Raw / 响应头”这几个稳定入口;把状态、耗时、大小与复制动作做成在窄窗口仍可阅读的工具栏;设置项按任务归类,只有影响安全或数据保存的说明才占据常显空间。暂不引入竞品的全部脚本、插件或媒体预览,以免把请求工作台变成难维护的多套运行时。
本轮验证:`npm test -- --run`(78 项)、`npm run build`、`git diff --check`。本机 GUI 的自动查看被运行环境拒绝,窄窗的实际视觉效果仍待桌面窗口验收。