Files
pig-farm-controller/bmad/api-contracts-main-zh.md
2025-11-01 19:22:39 +08:00

132 lines
6.3 KiB
Markdown

# API 契约 - 主模块
本文档概述了猪场控制器应用程序中可用的 API 端点。
## 公共路由(无需身份验证)
| 方法 | 路径 | 描述 |
| :----- | :------------------------- | :------------- |
| POST | `/api/v1/users` | 用户注册 |
| POST | `/api/v1/users/login` | 用户登录 |
| POST | `/upstream` | 处理设备上行事件 |
| GET | `/swagger/*any` | Swagger UI |
## 认证路由(需要 JWT 身份验证和审计日志)
### 用户端点 (`/api/v1/users`)
| 方法 | 路径 | 描述 |
| :----- | :--------------------------------- | :------------- |
| POST | `/api/v1/users/:id/notifications/test` | 发送测试通知 |
### 设备端点 (`/api/v1/devices`)
| 方法 | 路径 | 描述 |
| :----- | :--------------------------------- | :------------- |
| POST | `/api/v1/devices` | 创建设备 |
| GET | `/api/v1/devices` | 获取设备列表 |
| GET | `/api/v1/devices/:id` | 获取单个设备 |
| PUT | `/api/v1/devices/:id` | 更新设备 |
| DELETE | `/api/v1/devices/:id` | 删除设备 |
| POST | `/api/v1/devices/manual-control/:id` | 手动控制设备 |
### 区域控制器端点 (`/api/v1/area-controllers`)
| 方法 | 路径 | 描述 |
| :----- | :--------------------------------- | :------------- |
| POST | `/api/v1/area-controllers` | 创建区域控制器 |
| GET | `/api/v1/area-controllers` | 获取区域控制器列表 |
| GET | `/api/v1/area-controllers/:id` | 获取单个区域控制器 |
| PUT | `/api/v1/area-controllers/:id` | 更新区域控制器 |
| DELETE | `/api/v1/area-controllers/:id` | 删除区域控制器 |
### 设备模板端点 (`/api/v1/device-templates`)
| 方法 | 路径 | 描述 |
| :----- | :--------------------------------- | :------------- |
| POST | `/api/v1/device-templates` | 创建设备模板 |
| GET | `/api/v1/device-templates` | 获取设备模板列表 |
| GET | `/api/v1/device-templates/:id` | 获取单个设备模板 |
| PUT | `/api/v1/device-templates/:id` | 更新设备模板 |
| DELETE | `/api/v1/device-templates/:id` | 删除设备模板 |
### 计划端点 (`/api/v1/plans`)
| 方法 | 路径 | 描述 |
| :----- | :--------------------------------- | :------------- |
| POST | `/api/v1/plans` | 创建计划 |
| GET | `/api/v1/plans` | 获取计划列表 |
| GET | `/api/v1/plans/:id` | 获取单个计划 |
| PUT | `/api/v1/plans/:id` | 更新计划 |
| DELETE | `/api/v1/plans/:id` | 删除计划 |
| POST | `/api/v1/plans/:id/start` | 启动计划 |
| POST | `/api/v1/plans/:id/stop` | 停止计划 |
### 猪舍端点 (`/api/v1/pig-houses`)
| 方法 | 路径 | 描述 |
| :----- | :--------------------------------- | :------------- |
| POST | `/api/v1/pig-houses` | 创建猪舍 |
| GET | `/api/v1/pig-houses` | 获取猪舍列表 |
| GET | `/api/v1/pig-houses/:id` | 获取单个猪舍 |
| PUT | `/api/v1/pig-houses/:id` | 更新猪舍 |
| DELETE | `/api/v1/pig-houses/:id` | 删除猪舍 |
### 猪圈端点 (`/api/v1/pens`)
| 方法 | 路径 | 描述 |
| :----- | :--------------------------------- | :------------- |
| POST | `/api/v1/pens` | 创建猪圈 |
| GET | `/api/v1/pens` | 获取猪圈列表 |
| GET | `/api/v1/pens/:id` | 获取单个猪圈 |
| PUT | `/api/v1/pens/:id` | 更新猪圈 |
| DELETE | `/api/v1/pens/:id` | 删除猪圈 |
| PUT | `/api/v1/pens/:id/status` | 更新猪圈状态 |
### 猪群端点 (`/api/v1/pig-batches`)
| 方法 | 路径 | 描述 |
| :----- | :----------------------------------------- | :------------- |
| POST | `/api/v1/pig-batches` | 创建猪群 |
| GET | `/api/v1/pig-batches` | 获取猪群列表 |
| GET | `/api/v1/pig-batches/:id` | 获取单个猪群 |
| PUT | `/api/v1/pig-batches/:id` | 更新猪群 |
| DELETE | `/api/v1/pig-batches/:id` | 删除猪群 |
| POST | `/api/v1/pig-batches/assign-pens/:id` | 为猪群分配空栏 |
| POST | `/api/v1/pig-batches/reclassify-pen/:fromBatchID` | 将猪栏划拨到新群 |
| DELETE | `/api/v1/pig-batches/remove-pen/:penID/:batchID` | 从猪群移除空栏 |
| POST | `/api/v1/pig-batches/move-pigs-into-pen/:id` | 将猪只从“虚拟库存”移入指定猪栏 |
| POST | `/api/v1/pig-batches/sell-pigs/:id` | 处理卖猪业务 |
| POST | `/api/v1/pig-batches/buy-pigs/:id` | 处理买猪业务 |
| POST | `/api/v1/pig-batches/transfer-across-batches/:sourceBatchID` | 跨猪群调栏 |
| POST | `/api/v1/pig-batches/transfer-within-batch/:id` | 群内调栏 |
| POST | `/api/v1/pig-batches/record-sick-pigs/:id` | 记录新增病猪事件 |
| POST | `/api/v1/pig-batches/record-sick-pig-recovery/:id` | 记录病猪康复事件 |
| POST | `/api/v1/pig-batches/record-sick-pig-death/:id` | 记录病猪死亡事件 |
| POST | `/api/v1/pig-batches/record-sick-pig-cull/:id` | 记录病猪淘汰事件 |
| POST | `/api/v1/pig-batches/record-death/:id` | 记录正常猪只死亡事件 |
| POST | `/api/v1/pig-batches/record-cull/:id` | 记录正常猪只淘汰事件 |
### 监控端点 (`/api/v1/monitor`)
| 方法 | 路径 | 描述 |
| :----- | :--------------------------------- | :------------- |
| GET | `/api/v1/monitor/sensor-data` | 获取传感器数据 |
| GET | `/api/v1/monitor/device-command-logs` | 获取设备命令日志 |
| GET | `/api/v1/monitor/plan-execution-logs` | 获取计划执行日志 |
| GET | `/api/v1/monitor/task-execution-logs` | 获取任务执行日志 |
| GET | `/api/v1/monitor/pending-collections` | 获取待处理采集 |
| GET | `/api/v1/monitor/user-action-logs` | 获取用户操作日志 |
| GET | `/api/v1/monitor/raw-material-purchases` | 获取原材料采购记录 |
| GET | `/api/v1/monitor/raw-material-stock-logs` | 获取原材料库存日志 |
| GET | `/api/v1/monitor/feed-usage-records` | 获取饲料使用记录 |
| GET | `/api/v1/monitor/medication-logs` | 获取用药记录 |
| GET | `/api/v1/monitor/pig-batch-logs` | 获取猪群日志 |
| GET | `/api/v1/monitor/weighing-batches` | 获取称重批次 |
| GET | `/api/v1/monitor/weighing-records` | 获取称重记录 |
| GET | `/api/v1/monitor/pig-transfer-logs` | 获取猪只转栏日志 |
| GET | `/api/v1/monitor/pig-sick-logs` | 获取病猪日志 |
| GET | `/api/v1/monitor/pig-purchases` | 获取猪只采购记录 |
| GET | `/api/v1/monitor/pig-sales` | 获取猪只销售记录 |
| GET | `/api/v1/monitor/notifications` | 获取通知 |