- CheckerDefinition 泛型化,HTTP/Command checker 移除 resolved target 断言 - 新增 ProbeStore.getAllRecentSamples 消除 targets 路由 N+1 查询 - 统一 getAllTargetStats 与 getTargetStats 的 availability 精度 - Engine rejected 结果写入 internal error 记录,提升可观测性 - 新增 bootstrap.ts 统一 dev/production 启动序列 - dataDir 相对路径改为基于配置文件目录解析 - validatePagination 增加 pageSize 上限 200 校验 - 修复 ErrorBoundary override 标记 - 更新 README/DEVELOPMENT 文档,新增完整测试覆盖
1.4 KiB
1.4 KiB
MODIFIED Requirements
Requirement: API 错误处理
系统 SHALL 对不存在的目标 ID、无效参数和超出范围的分页参数返回适当的 HTTP 错误响应。
Scenario: 查询不存在的目标
- WHEN 客户端请求
GET /api/targets/999/history - THEN 系统 SHALL 返回 404 状态码和错误信息
Scenario: 无效的 from/to 参数
- WHEN 客户端请求
GET /api/targets/1/history?from=invalid - THEN 系统 SHALL 返回 400 状态码和错误信息
Scenario: 无效的分页参数
- WHEN 客户端请求
GET /api/targets/1/history?from=ISO&to=ISO&page=abc - THEN 系统 SHALL 返回 400 状态码和错误信息
Scenario: pageSize 超过上限
- WHEN 客户端请求
GET /api/targets/1/history?from=ISO&to=ISO&pageSize=201 - THEN 系统 SHALL 返回 400 状态码和错误信息,提示 pageSize 不能超过 200
Scenario: pageSize 等于上限
- WHEN 客户端请求
GET /api/targets/1/history?from=ISO&to=ISO&pageSize=200 - THEN 系统 SHALL 正常返回数据
Scenario: from 或 to 参数缺失
- WHEN 客户端请求
GET /api/targets/1/trend未提供 from 或 to 参数 - THEN 系统 SHALL 返回 400 状态码和错误信息
Scenario: 无效的目标 ID
- WHEN 客户端请求
GET /api/targets/abc/history - THEN 系统 SHALL 返回 400 状态码和错误信息