36 lines
1.7 KiB
Markdown
36 lines
1.7 KiB
Markdown
## MODIFIED Requirements
|
||
|
||
### Requirement: Bun HTTP 运行时
|
||
系统 SHALL 运行一个 Bun HTTP server,由单个进程提供后端 API、健康检查、生产静态资源和 SPA fallback 行为。
|
||
|
||
#### Scenario: 启动运行时服务器
|
||
- **WHEN** server 进程成功启动
|
||
- **THEN** 它 SHALL 监听 YAML 配置文件中指定的 host 和 port,并记录实际 server URL
|
||
|
||
#### Scenario: 通过 YAML 配置提供运行时参数
|
||
- **WHEN** 通过 YAML 配置文件提供 host、port、数据目录等参数
|
||
- **THEN** server SHALL 使用该值,且不需要重新构建
|
||
|
||
#### Scenario: CLI 只接受配置文件路径
|
||
- **WHEN** 用户通过命令行启动程序
|
||
- **THEN** 系统 SHALL 只接受一个命令行参数作为 YAML 配置文件路径
|
||
|
||
#### Scenario: 提供拨测相关 API
|
||
- **WHEN** server 启动完成
|
||
- **THEN** 系统 SHALL 提供 `/api/summary`、`/api/targets`、`/api/targets/:id/history`、`/api/targets/:id/trend` 端点
|
||
|
||
### Requirement: HTTP method 语义
|
||
系统 SHALL 为运行时端点提供明确的 HTTP method 语义,避免不支持的 method 被错误地当作成功请求处理。
|
||
|
||
#### Scenario: GET 请求访问运行时端点
|
||
- **WHEN** 客户端使用 `GET` 请求 `/health` 或 `/api/*` 端点
|
||
- **THEN** Bun server SHALL 返回对应端点的成功响应
|
||
|
||
#### Scenario: HEAD 请求访问运行时端点
|
||
- **WHEN** 客户端使用 `HEAD` 请求 `/health` 或 `/api/*` 端点
|
||
- **THEN** Bun server SHALL 返回与 `GET` 相同的成功状态和 headers,但 MUST NOT 返回响应体
|
||
|
||
#### Scenario: 不支持的 method 访问运行时端点
|
||
- **WHEN** 客户端使用不支持的 method 请求 `/health` 或 `/api/*` 端点
|
||
- **THEN** Bun server SHALL 返回 405 状态码和 Allow header
|