---
paths:
  - "mocks/**/*.{yml,yaml}"
---

## YAML 配置规范

AI 在生成 Mock 规则时必须遵循以下格式。

### 字段说明

| 字段 | 类型 | 必填 | 说明 |
|------|------|:----:|------|
| id | string | 是 | 规则唯一标识 |
| request.method | string | 是 | HTTP 方法 (GET/POST/PUT/DELETE...) |
| request.path | string | 是 | 请求路径，精确匹配 |
| request.query_params | object | 否 | 查询参数匹配 |
| request.headers | object | 否 | 请求头匹配（大小写不敏感） |
| request.body | any | 否 | 请求体匹配，支持 JSON 对象或字符串 |
| response.status | number | 是 | HTTP 状态码 |
| response.headers | object | 否 | 响应头 |
| response.body | string | 是 | 响应体，支持 file:// 前缀 |
| settings.delay_ms | number | 否 | 延迟响应（毫秒） |

### 匹配规则

1. **路径精确匹配**（非前缀匹配）
2. **请求头匹配大小写不敏感**
3. **Body 匹配**支持 JSON 对象或字符串比较

### 配置示例

**单接口模式：**

```yaml
id: "login"
request:
  method: "POST"
  path: "/api/login"
  body: { "username": "test" }
response:
  status: 200
  body: '{"token": "xxx"}'
settings:
  delay_ms: 100
```

**多接口模式（数组）：**

```yaml
- id: "get-users"
  request: { method: "GET", path: "/api/users" }
  response: { status: 200, body: '{"users": []}' }

- id: "create-user"
  request: { method: "POST", path: "/api/users" }
  response: { status: 201, body: '{"id": 1}' }
```

**带查询参数和请求头：**

```yaml
id: "search-users"
request:
  method: "GET"
  path: "/api/users"
  query_params: { "role": "admin" }
  headers: { "Authorization": "Bearer token" }
response:
  status: 200
  headers: { "X-Total-Count": "100" }
  body: '{"users": []}'
```

**文件响应：**

```yaml
id: "download-pdf"
request:
  method: "GET"
  path: "/api/download"
response:
  status: 200
  body: "file://./data/large-file.pdf"
```

> `file://` 支持两种路径：
> - 相对路径：`file://./data/file.pdf`（相对于项目根目录）
> - 绝对路径：`file:///C:/path/to/file.pdf`
