# 配置 mm API 参数校验

## 规则（Rules）

- param.json 位于 `api_{app}_{类型}/{接口名}/param.json`
- 可选文件，不配置则不校验参数
- 校验通过则执行业务逻辑，不通过则自动返回错误
- `filter: true` 过滤掉未定义的参数

## 方法（Methods）

### 步骤1：确定请求方法和参数

分析接口需要的参数：GET 参数放 `get.query`，POST 参数放 `post.body`。

### 步骤2：编写 param.json

```json
{
    "filter": true,
    "get": {
        "query": ["id", "name"],
        "query_required": ["id"]
    },
    "post": {
        "body": ["data", "title"],
        "body_required": ["title"]
    },
    "list": [
        {
            "name": "id",
            "title": "ID",
            "type": "number",
            "number": { "range": [1, 99999] }
        },
        {
            "name": "title",
            "title": "标题",
            "type": "string",
            "string": { "range": [2, 100] }
        }
    ]
}
```

### 步骤3：验证

使用 `"路径".loadJson()` 检查 JSON 格式。

## 技巧（Tips）

- **type** 支持 `string`、`number`、`boolean`
- **string.format** 支持：`url`、`email`、`phone`、`username`、`password`、`dateISO`、`ch`（中文）
- **string.extension** 用于校验文件扩展名：`png|gif|jpg|jpeg|bmp`
- **string.different** 确保与某字段值不同（如密码与用户名）
- **string.identical** 确保与某字段值相同（如确认密码）
- **splitter** 允许传多个值：`"splitter": "|"` 表示用 `|` 分隔
