# 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` | 获取通知 |