## 线路 (`lines`)

节点组里的一条解析记录:节点按哪条 DNS 解析线路、多少权重出现在组里;删除前须先停用。

鉴权: 仅管理员 · 文档: https://www-demo.kuxitong.com/zh/docs/api/lines

### GET `/api/v2/lines`

列出线路 · 鉴权: 仅管理员

查询参数:

| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| `page` | integer |  | 页码,从 1 开始。 默认: 1 |
| `page_size` | integer |  | 每页条数。 默认: 20 |
| `sort` | string |  | 排序字段,逗号分隔,前缀 `-` 表示降序,如 `-created_at,id`。 |

```sh
curl "https://panel.example.com/api/v2/lines" \
  -H "X-API-Key: $GOCDN_API_KEY"
```

### POST `/api/v2/lines`

创建线路 · 鉴权: 仅管理员

请求体:

| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| `dns_line` | string |  | DNS 解析线路代码(default = 默认线路;运营商/地区线路代码由 DNS 域映射)。 |
| `enabled` | boolean |  | 是否启用 |
| `force` | boolean |  | 强制写入,跳过两道保护(须二次确认):线路成为启用的主线路时节点须已装上配置、比该装的版本落后不超过 1 版(否则 422 node_config_behind);停用或转备用组里最后一条启用的主线路(否则 422 last_primary_line)。 |
| `is_backup` | boolean |  | 备用 IP:平时不进解析,按节点组的备用 IP 切换方式自动启用/撤下。 |
| `is_backup_default` | boolean |  | 备用默认解析:节点组里没有在用的默认线路时,这条线路自动改按默认线路解析,有了再改回原线路。 |
| `node_group_id` | integer | 有 | 所属节点组的 id。 |
| `node_id` | integer | 有 | 节点 ID |
| `weight` | integer |  | 权重,1 到 100,越大分到的解析越多。 |

```sh
curl -X POST "https://panel.example.com/api/v2/lines" \
  -H "X-API-Key: $GOCDN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"dns_line":"default","node_group_id":1,"node_id":1,"weight":1}'
```

### GET `/api/v2/lines/{id}`

获取线路 · 鉴权: 仅管理员

```sh
curl "https://panel.example.com/api/v2/lines/{id}" \
  -H "X-API-Key: $GOCDN_API_KEY"
```

### PUT `/api/v2/lines/{id}`

修改线路 · 鉴权: 仅管理员

请求体:

| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| `dns_line` | string |  | DNS 解析线路代码(default = 默认线路;运营商/地区线路代码由 DNS 域映射)。 |
| `enabled` | boolean |  | 是否启用 |
| `force` | boolean |  | 强制写入,跳过两道保护(须二次确认):线路成为启用的主线路时节点须已装上配置、比该装的版本落后不超过 1 版(否则 422 node_config_behind);停用或转备用组里最后一条启用的主线路(否则 422 last_primary_line)。 |
| `is_backup` | boolean |  | 备用 IP:平时不进解析,按节点组的备用 IP 切换方式自动启用/撤下。 |
| `is_backup_default` | boolean |  | 备用默认解析:节点组里没有在用的默认线路时,这条线路自动改按默认线路解析,有了再改回原线路。 |
| `node_group_id` | integer |  | 所属节点组的 id。 |
| `node_id` | integer |  | 节点 ID |
| `weight` | integer |  | 权重,1 到 100,越大分到的解析越多。 |

```sh
curl -X PUT "https://panel.example.com/api/v2/lines/{id}" \
  -H "X-API-Key: $GOCDN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"enabled":false}'
```

### DELETE `/api/v2/lines/{id}`

删除线路 · 鉴权: 仅管理员

```sh
curl -X DELETE "https://panel.example.com/api/v2/lines/{id}" \
  -H "X-API-Key: $GOCDN_API_KEY"
```

线路对象:

| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| `backup_default_on` | boolean |  | 备用默认解析当前已启用、正按默认线路解析(只读,由定时任务维护)。 (只读) |
| `backup_on` | boolean |  | 备用 IP 当前已启用进解析(只读,由定时任务维护)。 (只读) |
| `created_at` | string |  | 创建时间 (只读) |
| `disable_by` | string |  | 停用来源(manual 管理员手工、monitor 节点监控、bandwidth 带宽超限等);启用时为空。 |
| `dns_line` | string |  | DNS 解析线路代码(default = 默认线路;运营商/地区线路代码由 DNS 域映射)。 |
| `enabled` | boolean |  | 是否启用 |
| `force` | boolean |  | 强制写入,跳过两道保护(须二次确认):线路成为启用的主线路时节点须已装上配置、比该装的版本落后不超过 1 版(否则 422 node_config_behind);停用或转备用组里最后一条启用的主线路(否则 422 last_primary_line)。 |
| `id` | integer |  | 记录 ID (只读) |
| `is_backup` | boolean |  | 备用 IP:平时不进解析,按节点组的备用 IP 切换方式自动启用/撤下。 |
| `is_backup_default` | boolean |  | 备用默认解析:节点组里没有在用的默认线路时,这条线路自动改按默认线路解析,有了再改回原线路。 |
| `node_group_id` | integer |  | 所属节点组的 id。 |
| `node_id` | integer |  | 节点 ID |
| `updated_at` | string |  | 更新时间 (只读) |
| `weight` | integer |  | 权重,1 到 100,越大分到的解析越多。 |
