# 故障记录 API 参考

Source: https://instatus.com/help/zh/api/outages

## 获取页面的所有故障记录

**端点：**

```bash
GET /v1/:page_id/outages?page=:page&per_page=:per_page
```

- page 默认为 1。
- per_page 默认为 50，每页最多 100 条。

**响应示例：**

```json
[
  {
    "id": "ckoutage1",
    "from": "2020-09-12T03:38:47.998Z",
    "to": "2020-09-12T04:38:47.998Z",
    "status": "PARTIALOUTAGE",
    "visibilityState": "PUBLISHED",
    "createdAt": "2020-09-12T03:38:47.998Z",
    "updatedAt": "2020-09-12T03:40:47.998Z",
    "component": {
      "id": "ckf01fvnxywz50a35nh1qzssm",
      "name": "Website"
    },
    "incident": {
      "id": "ckf01m59ueaqb0a32wrljz1yd",
      "name": "Rocket is going down",
      "createdByType": "USER",
      "status": "INVESTIGATING"
    }
  }
]
```

## 获取单条故障记录

**端点：**

```bash
GET /v1/:page_id/outages/:outage_id
```

**响应示例：**

```json
{
  "id": "ckoutage1",
  "from": "2020-09-12T03:38:47.998Z",
  "to": "2020-09-12T04:38:47.998Z",
  "status": "PARTIALOUTAGE",
  "visibilityState": "PUBLISHED",
  "createdAt": "2020-09-12T03:38:47.998Z",
  "updatedAt": "2020-09-12T03:40:47.998Z",
  "component": {
    "id": "ckf01fvnxywz50a35nh1qzssm",
    "name": "Website"
  },
  "incident": {
    "id": "ckf01m59ueaqb0a32wrljz1yd",
    "name": "Rocket is going down",
    "createdByType": "USER",
    "status": "INVESTIGATING"
  }
}
```

## 添加故障记录

**端点：**

```bash
POST /v1/:page_id/outages
```

**请求示例：**

```json
{
  "componentId": "ckf01fvnxywz50a35nh1qzssm",
  "status": "PARTIALOUTAGE",
  "from": "2020-09-12 03:38:47.998",
  "to": "2020-09-12 04:38:47.998",
  "visibilityState": "PUBLISHED"
}
```

**响应示例：**

```json
{
  "id": "ckoutage1",
  "from": "2020-09-12T03:38:47.998Z",
  "to": "2020-09-12T04:38:47.998Z",
  "status": "PARTIALOUTAGE",
  "visibilityState": "PUBLISHED",
  "createdAt": "2020-09-12T03:38:47.998Z",
  "updatedAt": "2020-09-12T03:40:47.998Z",
  "component": {
    "id": "ckf01fvnxywz50a35nh1qzssm",
    "name": "Website"
  },
  "incident": null
}
```

## 更新故障记录

**端点：**

```bash
PUT /v1/:page_id/outages/:outage_id
```

**请求示例：**

```json
{
  "status": "MAJOROUTAGE",
  "to": "2020-09-12 05:38:47.998"
}
```

**响应示例：**

```json
{
  "id": "ckoutage1",
  "from": "2020-09-12T03:38:47.998Z",
  "to": "2020-09-12T05:38:47.998Z",
  "status": "MAJOROUTAGE",
  "visibilityState": "PUBLISHED",
  "createdAt": "2020-09-12T03:38:47.998Z",
  "updatedAt": "2020-09-12T04:40:47.998Z",
  "component": {
    "id": "ckf01fvnxywz50a35nh1qzssm",
    "name": "Website"
  },
  "incident": null
}
```

## 删除故障记录

**端点：**

```bash
DELETE /v1/:page_id/outages/:outage_id
```

**响应示例：**

HTTP 204 No Content
