# API 接口说明 - 参数配置中心

## 参数配置中心相关接口

### 1. 创建参数配置

**接口地址:** `POST /params`

**请求头:**
```
Authorization: your-token（必填）
```

**请求参数:**
```json
{
  "paramName": "默认参数配置",      // 参数名称（必填）
  "deviceName": "我的无人机",      // 设备名称（可选）
  "description": "这是一个测试参数配置",  // 描述（可选）
  "fcModel": "Pixhawk 4",         // 飞控型号（必填）
  "fcType": "PX4",                // 飞控类型（必填）
  "paramVersion": "1.0.0",        // 参数版本（必填）
  "paramDetail": "{\"key\":\"value\"}"  // 参数详情（可选，可以是JSON字符串）
}
```

**响应示例:**
```json
{
  "code": 200,
  "message": "参数创建成功",
  "data": null
}
```

**说明:**
- paramDetail 字段可以传入任意格式的参数配置内容
- 建议使用 JSON 字符串格式存储参数配置

---

### 2. 更新参数配置

**接口地址:** `PUT /params`

**请求头:**
```
Authorization: your-token（必填）
```

**请求参数:**
```json
{
  "id": 1,                          // 参数ID（必填）
  "paramName": "更新后的参数配置",    // 参数名称（必填）
  "deviceName": "我的无人机",        // 设备名称（可选）
  "description": "更新后的描述信息",  // 描述（可选）
  "fcModel": "Pixhawk 6X",          // 飞控型号（必填）
  "fcType": "PX4",                  // 飞控类型（必填）
  "paramVersion": "1.0.1",          // 参数版本（必填）
  "paramDetail": "更新后的参数详情..."  // 参数详情（可选）
}
```

**响应示例:**
```json
{
  "code": 200,
  "message": "参数更新成功",
  "data": null
}
```

**说明:**
- 只能更新自己创建的参数配置

---

### 3. 删除参数配置

**接口地址:** `DELETE /params/{id}`

**请求头:**
```
Authorization: your-token（必填）
```

**响应示例:**
```json
{
  "code": 200,
  "message": "参数删除成功",
  "data": null
}
```

**说明:**
- 只能删除自己创建的参数配置

---

### 4. 根据ID查询参数配置

**接口地址:** `GET /params/{id}`

**请求头:**
```
Authorization: your-token（必填）
```

**响应示例:**
```json
{
  "code": 200,
  "message": "success",
  "data": {
    "id": 1,
    "userId": 1,
    "username": "张三",
    "paramName": "默认参数配置",
    "deviceName": "我的无人机",
    "description": "这是一个测试参数配置",
    "fcModel": "Pixhawk 4",
    "fcType": "PX4",
    "paramVersion": "1.0.0",
    "paramDetail": "参数详细配置内容...",
    "downloadCount": 10,
    "createTime": "2025-01-01T12:00:00",
    "updateTime": "2025-01-01T12:00:00"
  }
}
```

**说明:**
- 只能查询自己创建的参数配置

---

### 5. 查询所有参数列表（公开）

**接口地址:** `GET /params/all/list`

**请求头:**
```
无需认证
```

**请求参数:**
```
fcModel: 飞控型号（可选，用于筛选）
```

**请求示例:**
```
GET /params/all/list
GET /params/all/list?fcModel=Pixhawk%204
```

**响应示例:**
```json
{
  "code": 200,
  "message": "success",
  "data": [
    {
      "id": 1,
      "userId": 1,
      "username": "张三",
      "paramName": "默认参数配置",
      "deviceName": "我的无人机",
      "description": "这是一个测试参数配置",
      "fcModel": "Pixhawk 4",
      "fcType": "PX4",
      "paramVersion": "1.0.0",
      "paramDetail": "参数详细配置内容...",
      "downloadCount": 10,
      "createTime": "2025-01-01T12:00:00",
      "updateTime": "2025-01-01T12:00:00"
    }
  ]
}
```

**说明:**
- 返回所有用户创建的参数配置
- 支持按飞控型号过滤
- 按更新时间倒序排序
- 不需要登录

---

### 6. 分页查询所有参数列表（公开）

**接口地址:** `GET /params/all/page`

**请求头:**
```
无需认证
```

**请求参数:**
```
current: 当前页码（默认1）
size: 每页数量（默认10）
fcModel: 飞控型号（可选，用于筛选）
```

**请求示例:**
```
GET /params/all/page?current=1&size=10
GET /params/all/page?current=1&size=10&fcModel=Pixhawk%204
```

**响应示例:**
```json
{
  "code": 200,
  "message": "success",
  "data": {
    "records": [
      {
        "id": 1,
        "userId": 1,
        "username": "张三",
        "paramName": "默认参数配置",
        "deviceName": "我的无人机",
        "description": "这是一个测试参数配置",
        "fcModel": "Pixhawk 4",
        "fcType": "PX4",
        "paramVersion": "1.0.0",
        "paramDetail": "参数详细配置内容...",
        "downloadCount": 10,
        "createTime": "2025-01-01T12:00:00",
        "updateTime": "2025-01-01T12:00:00"
      }
    ],
    "total": 50,
    "size": 10,
    "current": 1,
    "pages": 5
  }
}
```

**说明:**
- 返回所有用户创建的参数配置
- 支持分页和飞控型号过滤
- 按更新时间倒序排序
- 不需要登录

---

### 7. 查询我的参数列表

**接口地址:** `GET /params/my/list`

**请求头:**
```
Authorization: your-token（必填）
```

**请求参数:**
```
fcModel: 飞控型号（可选，用于筛选）
```

**请求示例:**
```
GET /params/my/list
GET /params/my/list?fcModel=Pixhawk%204
```

**响应示例:**
```json
{
  "code": 200,
  "message": "success",
  "data": [
    {
      "id": 1,
      "userId": 1,
      "username": "张三",
      "paramName": "默认参数配置",
      "deviceName": "我的无人机",
      "description": "这是一个测试参数配置",
      "fcModel": "Pixhawk 4",
      "fcType": "PX4",
      "paramVersion": "1.0.0",
      "paramDetail": "参数详细配置内容...",
      "downloadCount": 10,
      "createTime": "2025-01-01T12:00:00",
      "updateTime": "2025-01-01T12:00:00"
    }
  ]
}
```

**说明:**
- 返回当前用户创建的所有参数配置
- 支持按飞控型号过滤
- 按更新时间倒序排序

---

### 8. 分页查询我的参数列表

**接口地址:** `GET /params/my/page`

**请求头:**
```
Authorization: your-token（必填）
```

**请求参数:**
```
current: 当前页码（默认1）
size: 每页数量（默认10）
fcModel: 飞控型号（可选，用于筛选）
```

**请求示例:**
```
GET /params/my/page?current=1&size=10
GET /params/my/page?current=1&size=10&fcModel=Pixhawk%204
```

**响应示例:**
```json
{
  "code": 200,
  "message": "success",
  "data": {
    "records": [
      {
        "id": 1,
        "userId": 1,
        "username": "张三",
        "paramName": "默认参数配置",
        "deviceName": "我的无人机",
        "description": "这是一个测试参数配置",
        "fcModel": "Pixhawk 4",
        "fcType": "PX4",
        "paramVersion": "1.0.0",
        "paramDetail": "参数详细配置内容...",
        "downloadCount": 10,
        "createTime": "2025-01-01T12:00:00",
        "updateTime": "2025-01-01T12:00:00"
      }
    ],
    "total": 50,
    "size": 10,
    "current": 1,
    "pages": 5
  }
}
```

**说明:**
- 返回当前用户创建的参数配置
- 支持分页和飞控型号过滤
- 按更新时间倒序排序

---

### 9. 下载

**接口地址:** `POST /params/{id}/download`

**请求头:**
```
无需认证
```

**响应示例:**
```json
{
  "code": 200,
  "message": "下载成功",
  "data": null
}
```

**说明:**
- 每次调用会将指定参数的下载次数 +1

---

## 错误码说明

| 错误码 | 说明 |
|--------|------|
| 200 | 成功 |
| 500 | 失败 |

**常见错误消息:**

| 消息 | 说明 |
|------|------|
| 参数创建成功 | 创建参数配置成功 |
| 参数创建失败 | 创建参数配置失败 |
| 参数更新成功 | 更新参数配置成功 |
| 参数更新失败 | 更新参数配置失败 |
| 参数删除成功 | 删除参数配置成功 |
| 参数删除失败 | 删除参数配置失败 |
| 参数不存在 | 根据ID未找到参数配置 |
| 无权限操作该参数 | 只能操作自己创建的参数配置 |
| 下载成功 | 下载次数增加成功 |
| 下载失败 | 下载次数增加失败 |
