Files
core_wing_web/docs/backend-api.md
2026-02-27 17:41:08 +08:00

304 lines
7.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Corewing QC 后端接口文档
> 基础路径: `/api/qc`
## 通用响应结构
所有接口统一返回 `Result<T>`:
```json
{
"code": 200,
"message": "操作成功",
"data": T,
"success": true
}
```
| 字段 | 类型 | 说明 |
|---------|---------|---------------------------|
| code | Integer | 状态码 |
| message | String | 消息内容 |
| data | T | 业务数据 |
| success | Boolean | 是否成功 |
---
## 1. 验证无线板
验证 BLE MAC 地址对应的无线板是否已在系统中注册。
- **URL**: `POST /api/qc/wireless/validate-wireless`
- **Content-Type**: `application/json`
### 请求体
```json
{
"mac": "AA:BB:CC:DD:EE:FF"
}
```
| 字段 | 类型 | 必填 | 说明 |
|------|--------|------|----------------------------------|
| mac | String | 是 | BLE MAC 地址,即设备 SN |
### 响应
```json
{
"code": 200,
"message": "验证通过",
"data": true,
"success": true
}
```
- `data = true` — 设备已注册,允许进行 QC 测试
- `data = false` / `success = false` — 设备未注册或验证失败APP 端将**作废本次测试**
---
## 2. 上传测试记录
上传完整的 QC 测试结果(含所有步骤数据和照片 URL
- **URL**: `POST /api/qc/test/upload`
- **Content-Type**: `application/json`
### 请求体
```json
{
"testNo": "WL-20260227-001",
"productType": "WIRELESS_BOARD",
"sn": "AA:BB:CC:DD:EE:FF",
"operatorId": "OP001",
"operatorName": "张三",
"phoneModel": "Pixel 7",
"appVersion": "1.0.0",
"status": "PASS",
"createTime": "1740000000000",
"updatedAt": "1740001000000",
"uploadTime": "1740002000000",
"steps": [
{
"stepIndex": 1,
"stepName": "BLE连接与特征订阅",
"result": "PASS",
"dataJson": "{\"deviceName\":\"CoreWing-001\",\"deviceMac\":\"AA:BB:CC:DD:EE:FF\",\"validated\":true}",
"duration": 5200,
"completedAt": "1740000500000"
}
],
"photoUrls": [
"https://qc.corewing.com/photos/xxx.jpg"
]
}
```
| 字段 | 类型 | 必填 | 说明 |
|--------------|------------------|------|------------------------------------------------|
| testNo | String | 是 | 测试单号,格式: `WL-yyyyMMdd-NNN``FC-yyyyMMdd-NNN` |
| productType | String | 是 | `WIRELESS_BOARD` / `FLIGHT_CONTROLLER` |
| sn | String | 是 | 产品序列号(无线板为 BLE MAC 地址) |
| operatorId | String | 是 | 测试员 ID |
| operatorName | String | 是 | 测试员姓名 |
| phoneModel | String | 否 | 测试手机型号 |
| appVersion | String | 否 | APP 版本号 |
| status | String | 是 | `PASS` / `FAIL` |
| createTime | String | 是 | 创建时间(毫秒时间戳字符串) |
| updatedAt | String | 否 | 最后更新时间(毫秒时间戳字符串) |
| uploadTime | String | 否 | 上传时间(毫秒时间戳字符串) |
| steps | StepResultData[] | 是 | 步骤结果数组 |
| photoUrls | String[] | 否 | 已上传照片的远程 URL 列表 |
**StepResultData:**
| 字段 | 类型 | 必填 | 说明 |
|-------------|--------|------|--------------------------------------|
| stepIndex | int | 是 | 步骤序号(从 1 开始) |
| stepName | String | 是 | 步骤名称 |
| result | String | 否 | `PASS` / `FAIL` / null未完成 |
| dataJson | String | 否 | 步骤详细数据 JSON 字符串 |
| duration | long | 否 | 步骤耗时(毫秒) |
| completedAt | String | 否 | 完成时间(毫秒时间戳字符串) |
### 响应
```json
{
"code": 200,
"message": "上传成功",
"data": "https://qc.corewing.com/report/WL-20260227-001",
"success": true
}
```
- `data` — 测试报告 URL可为 null
---
## 3. 上传照片
上传测试步骤关联的照片。
- **URL**: `POST /api/qc/test/upload-photo`
- **Content-Type**: `multipart/form-data`
### 请求参数
| 字段 | 类型 | 必填 | 说明 |
|--------|---------------|------|------------------|
| testNo | String (text) | 是 | 测试单号 |
| photo | File | 是 | 照片文件 (JPEG等)|
### 响应
```json
{
"code": 200,
"message": "上传成功",
"data": {
"url": "https://qc.corewing.com/photos/xxx.jpg"
},
"success": true
}
```
---
## 4. 验证 SN
验证序列号是否有效(飞控板扫码流程使用)。
- **URL**: `POST /api/qc/test/validate-sn`
- **Content-Type**: `application/json`
### 请求体
```json
{
"sn": "FC-SN-20260001"
}
```
### 响应
```json
{
"code": 200,
"message": "SN 有效",
"data": true,
"success": true
}
```
---
## 5. 获取测试配置
获取指定产品类型的测试参数/阈值。
- **URL**: `GET /api/qc/config/test-params?productType=WIRELESS_BOARD`
### 响应
```json
{
"code": 200,
"success": true,
"data": { }
}
```
> `data` 结构由后端自定义APP 当前未使用。
---
## 6. 查询 SN 历史记录
- **URL**: `GET /api/qc/test/history?sn=AA:BB:CC:DD:EE:FF`
### 响应
```json
{
"code": 200,
"success": true,
"data": { }
}
```
---
## 7. 获取测试报告
- **URL**: `GET /api/qc/test/report?testNo=WL-20260227-001`
### 响应
```json
{
"code": 200,
"success": true,
"data": "https://qc.corewing.com/report/WL-20260227-001"
}
```
---
## 枚举值参考
### productType产品类型
| 值 | 说明 |
|---------------------|--------|
| WIRELESS_BOARD | 无线板 |
| FLIGHT_CONTROLLER | 飞控板 |
### status测试状态
| 值 | 说明 |
|-------------|----------|
| IN_PROGRESS | 进行中 |
| PASS | 通过 |
| FAIL | 失败 |
| UPLOADED | 已上传 |
### result步骤结果
| 值 | 说明 |
|------|------|
| PASS | 通过 |
| FAIL | 失败 |
### 无线板测试步骤7 步)
| stepIndex | stepName |
|-----------|------------------------|
| 1 | BLE连接与特征订阅 |
| 2 | 安装无线板/外观检查 |
| 3 | 供电测试(4.5V) |
| 4 | Type-C USB测试 |
| 5 | BLE信号质量测试 |
| 6 | MAVLink心跳通信测试 |
| 7 | 激活/入库 |
### 飞控板测试步骤12 步)
| stepIndex | stepName |
|-----------|-----------------|
| 1 | USB串口连接 |
| 2 | 安装SD卡与装夹 |
| 3 | 心跳检测 |
| 4 | IMU测试 |
| 5 | 气压计测试 |
| 6 | GPS模块检测 |
| 7 | RC输入测试 |
| 8 | ADC接口测试 |
| 9 | PWM输出测试 |
| 10 | 图传与OSD检查 |
| 11 | 参数重置 |
| 12 | 数据上传/结束 |