@@ -33,10 +33,12 @@ GET /v1/issues?start={start}&limit={limit}[&state={state}]
3333
3434| 参数名 | 类型 | 必填 | 说明 |
3535| --------| ------| ------| ------|
36- | start | string | 是 | 分页起始位置标识 |
36+ | start | string | 否 | 游标。第一页可不传或传空;翻页使用上次响应的 ` next ` |
3737| limit | integer | 是 | 每页返回数量,建议范围:1-100 |
3838| state | string | 否 | 问题状态筛选:` Open ` 、` Closed ` |
3939
40+ 分页说明:服务采用基于游标(cursor)的分页。首次请求建议省略 ` start ` ;当返回结果较多时,响应体会包含 ` next ` 字段,表示下一页的游标。继续翻页时,将该 ` next ` 作为 ` start ` 传回。
41+
4042** 响应示例:**
4143``` json
4244{
@@ -95,15 +97,15 @@ GET /v1/issues/{issueID}
9597 "alertSince" : " 2025-05-05T11:00:00.000Z" ,
9698 "comments" : [
9799 {
98- "createAt " : " 2025-05-05T11:00:30.000Z" ,
100+ "createdAt " : " 2025-05-05T11:00:30.000Z" ,
99101 "content" : " ## 自动分析\n\n 检测到 S3 API 响应时间异常,可能原因:\n - 后端存储负载过高\n - 网络延迟增加\n\n ## 建议处理\n 1. 检查存储节点状态\n 2. 分析网络监控数据"
100102 },
101103 {
102- "createAt " : " 2025-05-05T11:05:00.000Z" ,
104+ "createdAt " : " 2025-05-05T11:05:00.000Z" ,
103105 "content" : " ## 自动治愈开始\n\n 执行治愈策略:重启相关服务实例"
104106 },
105107 {
106- "createAt " : " 2025-05-05T11:15:00.000Z" ,
108+ "createdAt " : " 2025-05-05T11:15:00.000Z" ,
107109 "content" : " ## 问题已解决\n\n 响应时间恢复正常,告警自动关闭"
108110 }
109111 ]
@@ -123,9 +125,9 @@ GET /v1/issues/{issueID}
123125| 字段名 | 类型 | 说明 |
124126| --------| ------| ------|
125127| id | string | 告警问题唯一标识 |
126- | state | string | 问题状态 :` Open ` 、` Closed ` |
128+ | state | string | 告警工单的生命周期状态状态 :` Open ` 、` Closed ` |
127129| level | string | 告警等级:` P0 ` 、` P1 ` 、` P2 ` 、` Warning ` |
128- | alertState | string | 处理状态 :` Restored ` 、` AutoRestored ` 、` InProcessing ` |
130+ | alertState | string | 告警本身的实时状态 :` Restored ` 、` AutoRestored ` 、` InProcessing ` |
129131| title | string | 告警标题描述 |
130132| labels | Label[ ] | 标签数组 |
131133| alertSince | string | 告警发生时间(ISO 8601格式) |
@@ -142,9 +144,20 @@ GET /v1/issues/{issueID}
142144
143145| 字段名 | 类型 | 说明 |
144146| --------| ------| ------|
145- | createAt | string | 评论创建时间(ISO 8601格式) |
147+ | createdAt | string | 评论创建时间(ISO 8601格式) |
146148| content | string | 评论内容(Markdown格式) |
147149
150+ ### 状态语义与映射
151+
152+ - ** state** :工单生命周期状态,取值:` Open ` 、` Closed ` 。
153+ - ** alertState** :告警实时状态,取值:` InProcessing ` 、` Restored ` 、` AutoRestored ` 。
154+
155+ 典型关系与约定:
156+ - 当 ` state = Open ` 时,通常表示仍存在未恢复的相关告警,` alertState ` 多为 ` InProcessing ` 。
157+ - 当 ` state = Closed ` 时,通常表示所有相关告警已恢复,` alertState ` 多为 ` Restored ` 或 ` AutoRestored ` (自动恢复)。
158+
159+ 注意:` alertState ` 反映的是告警流的当前快照,而 ` state ` 管理的是问题工单的生命周期。二者并非强绑定,边界时刻可能出现 ` state = Open ` 但部分告警已恢复的情况。
160+
148161## 错误响应
149162
150163所有接口在出错时返回统一的错误格式:
@@ -178,7 +191,12 @@ GET /v1/issues/{issueID}
178191
179192``` bash
180193# 获取告警列表
181- curl -X GET " https://api.example.com/v1/issues?start=0&limit=10&state=Open" \
194+ curl -X GET " https://api.example.com/v1/issues?limit=10&state=Open" \
195+ -H " Authorization: Bearer YOUR_TOKEN" \
196+ -H " Content-Type: application/json"
197+
198+ # 获取第二页(使用上一页响应中的 next 作为 start)
199+ curl -X GET " https://api.example.com/v1/issues?start=c_abcdef12345&limit=10&state=Open" \
182200 -H " Authorization: Bearer YOUR_TOKEN" \
183201 -H " Content-Type: application/json"
184202
@@ -192,14 +210,23 @@ curl -X GET "https://api.example.com/v1/issues/issue_20250505_001" \
192210
193211``` javascript
194212// 获取告警列表
195- const response = await fetch (' /v1/issues?start=0& limit=10' , {
213+ const response = await fetch (' /v1/issues?limit=10' , {
196214 headers: {
197215 ' Authorization' : ' Bearer ' + token,
198216 ' Content-Type' : ' application/json'
199217 }
200218});
201219const data = await response .json ();
202220
221+ // 获取第二页(将上一页的 next 作为 start 传回)
222+ const nextResponse = await fetch (` /v1/issues?start=${ data .next } &limit=10` , {
223+ headers: {
224+ ' Authorization' : ' Bearer ' + token,
225+ ' Content-Type' : ' application/json'
226+ }
227+ });
228+ const nextPage = await nextResponse .json ();
229+
203230// 获取告警详情
204231const detailResponse = await fetch (` /v1/issues/${ issueId} ` , {
205232 headers: {
0 commit comments