1
0
Files
DiAL/openspec/specs/meta-api/spec.md
lanyuanxiaoyao 31aeee6d60 refactor: 前端架构重构 — hook拆分、组件拆分、类型筛选器动态化、Meta API
- 后端新增 GET /api/meta 端点(checkerRegistry.supportedTypes)及 MetaResponse 类型
- 前端 hook 拆分为 use-queries.ts(全局查询+useMeta)和 use-target-detail.ts(Drawer状态)
- TargetDetailDrawer 拆分为 OverviewTab + HistoryTab + history-table-columns + stats.ts
- 类型筛选器由 meta API 动态驱动,删除 target-type-display 静态映射
- 列定义改为工厂函数 createTargetTableColumns(checkerTypes),TargetGroup 新增 columns prop
- 修复 StatusDonut key、StatusBar maxSlots prop、TrendChart 移除 loading prop
- 补充 utils/time、utils/stats、动态列工厂测试,删除旧 mapping 测试
- 同步 delta specs 到主 specs,归档 frontend-architecture-refactor change
2026-05-13 20:55:42 +08:00

1.2 KiB
Raw Blame History

Purpose

定义系统运行时元数据 APIchecker 类型列表等元信息的对外暴露方式。

Requirements

Requirement: Meta 信息 API

系统 SHALL 提供 GET /api/meta 端点,返回系统运行时元数据。

Scenario: 获取 checker 类型列表

  • WHEN 客户端请求 GET /api/meta
  • THEN 系统 SHALL 返回 JSON { checkerTypes: string[] },包含所有已注册的 checker 类型标识符(如 ["http", "command"]

Scenario: 类型列表来源

  • WHEN 系统启动并注册了 checker
  • THEN /api/meta 返回的 checkerTypes SHALL 与 CheckerRegistry.supportedTypes 完全一致

Scenario: 仅允许 GET/HEAD 方法

  • WHEN 客户端使用 POST/PUT/DELETE 等方法请求 /api/meta
  • THEN 系统 SHALL 返回 405 状态码

Scenario: HEAD 请求返回空体

  • WHEN 客户端使用 HEAD 方法请求 /api/meta
  • THEN 系统 SHALL 返回 200 状态码和正确的 Content-Type headerbody 为空

Requirement: MetaResponse 共享类型

系统 SHALL 在 src/shared/api.ts 中定义 MetaResponse 类型。

Scenario: MetaResponse 类型定义

  • WHEN 前后端引用 MetaResponse 类型
  • THEN 该类型 SHALL 包含 checkerTypes: string[] 字段