Skip to Content
示例OpenAPI Explorer

OpenAPI Explorer

这个示例展示了一个三栏浏览器:

  • operation 列表
  • operation 详情
  • schema 详情

和活动监视器不同,这个示例不是“实时刷新驱动”的,而是“结构化信息浏览驱动”的。

这让它成为一个很好的参考:
当你的应用不是监控面板,而是一个文档或资源浏览器时,Ansiq 应该怎么组织界面。

OpenAPI Explorer 的主链
1loader 读取本地文件或远程 URL
2parser 把原始文档转成中间模型
3左栏展示 operation 导航
4中栏展示 operation 详情
5右栏展示 schema / ref 详情

运行方式

cargo run -p ansiq-examples --example openapi_explorer -- --input /path/to/spec.yaml

也可以传远程 URL:

cargo run -p ansiq-examples --example openapi_explorer -- --input https://example.com/openapi.yaml
OpenAPI Explorer 的终端效果图

真实运行的 openapi_explorer 示例界面。

这个示例展示了什么

它适合用来理解:

  • split-pane 布局
  • selection 和 detail browsing
  • 本地文件 / 远程 URL 的加载入口
  • 结构化数据如何映射成 TUI 浏览器

这个示例主要用到哪些 widgets

为什么这个示例重要

很多 TUI 示例只展示:

  • 列表
  • 表格
  • 表单

但真正的终端应用经常还需要处理另一类问题:
如何在有限空间里浏览复杂结构化信息。

OpenAPI Explorer 就是在展示这一点。

它不是一个“请求客户端”,而是一个:

  • 文档浏览器
  • 结构导航器
  • schema 检视器

运行时建议观察什么

1. 左栏不是“原始文本”,而是压平后的导航模型

这说明 UI 不应该直接消费原始 OpenAPI JSON/YAML,而应该消费一套更适合浏览的中间模型。

2. 中栏和右栏承担了不同层次的信息

  • 中栏:当前 operation 的详情
  • 右栏:schema / ref 视图

这种分工非常适合 Ansiq 的多 pane shell,因为它把:

  • 导航
  • 主信息
  • 辅助信息

明确地放在了不同区域。

3. 它的复杂度主要来自数据准备,而不是 widget 本身

这个示例提醒你一个很重要的事实:

当应用开始处理真实格式时,最大的复杂度常常不在 UI,而在:

  • loader
  • parser
  • 中间模型
  • 选择逻辑

读代码时的顺序建议

推荐按下面的顺序读:

  1. loader
  2. parser
  3. models
  4. 场景状态
  5. 最后再看三栏布局

如果你直接从 UI 树开始读,会觉得它只是“左中右三个 pane”;但真正值得学习的是它如何把 OpenAPI 文档整理成一个适合浏览的模型。

这个示例没有做什么

它当前故意只做浏览,不做:

  • 发送请求
  • 历史记录
  • 命令模式
  • 复杂 filter

这样可以让它保持一个清晰边界:
先把“浏览器”做扎实,而不是一下子把它变成终端 API 客户端。

对应阅读

如果你想把这个示例和 Guide / Internals 连起来,推荐:

  1. 组件与 view!
  2. 状态、焦点与输入
  3. 响应式图与 UI 树
  4. List
  5. ScrollView
Last updated on