28 lines
1.2 KiB
Markdown
28 lines
1.2 KiB
Markdown
## Purpose
|
||
|
||
定义系统运行时元数据 API:checker 类型列表等元信息的对外暴露方式。
|
||
|
||
## Requirements
|
||
|
||
### Requirement: Meta 信息 API
|
||
系统 SHALL 提供 `GET /api/meta` 端点,返回系统运行时元数据。未匹配 method SHALL 按 API 通配符处理为 JSON 404,不再保留自定义 HEAD/405 语义。
|
||
|
||
#### 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: 不支持的 method 请求
|
||
- **WHEN** 客户端使用 POST/PUT/DELETE/HEAD 等未声明 method 请求 `/api/meta`
|
||
- **THEN** `/api/*` 通配符 SHALL 返回 JSON 404 响应
|
||
|
||
### Requirement: MetaResponse 共享类型
|
||
系统 SHALL 在 `src/shared/api.ts` 中定义 `MetaResponse` 类型。
|
||
|
||
#### Scenario: MetaResponse 类型定义
|
||
- **WHEN** 前后端引用 `MetaResponse` 类型
|
||
- **THEN** 该类型 SHALL 包含 `checkerTypes: string[]` 字段
|