7.1 KiB
7.1 KiB
前端接口开发计划
概述
根据前端代码分析,当前后端已实现基础的CRUD接口,但前端需要更多统计、监控、告警等功能的接口。以下是缺失接口的开发计划。
已实现接口
- ✅ 设备管理:CRUD操作
- ✅ 算法管理:CRUD操作
- ✅ 事件管理:CRUD操作
缺失接口清单
1. 仪表板统计接口 (优先级:高)
1.1 主要KPI指标
GET /api/dashboard/kpi
响应:
{
"total_devices": 156,
"online_devices": 142,
"total_algorithms": 8,
"active_algorithms": 6,
"total_events": 1247,
"today_events": 89,
"alert_events": 23,
"resolved_events": 66
}
1.2 告警趋势统计
GET /api/dashboard/alarm-trend
参数:
- days: 7 (默认7天)
响应:
{
"dates": ["2024-01-01", "2024-01-02", ...],
"alarms": [12, 15, 8, 23, 18, 25, 20],
"resolved": [10, 12, 7, 19, 15, 22, 18]
}
1.3 摄像头统计
GET /api/dashboard/camera-stats
响应:
{
"total_cameras": 156,
"online_cameras": 142,
"offline_cameras": 14,
"by_location": [
{"location": "港口区", "total": 45, "online": 42},
{"location": "码头区", "total": 38, "online": 35},
{"location": "办公区", "total": 23, "online": 21}
]
}
1.4 算法统计
GET /api/dashboard/algorithm-stats
响应:
{
"total_algorithms": 8,
"active_algorithms": 6,
"by_type": [
{"type": "目标检测", "count": 3, "accuracy": 95.2},
{"type": "行为识别", "count": 2, "accuracy": 88.7},
{"type": "越界检测", "count": 3, "accuracy": 92.1}
]
}
1.5 事件热点统计
GET /api/dashboard/event-hotspots
响应:
{
"hotspots": [
{
"location": "港口A区",
"event_count": 45,
"severity": "high",
"coordinates": {"lat": 31.2304, "lng": 121.4737}
}
]
}
2. 监控管理接口 (优先级:高)
2.1 监控列表
GET /api/monitors
参数:
- page: 1
- size: 20
- status: online/offline
- location: 位置筛选
响应:
{
"monitors": [
{
"id": 1,
"name": "港口区监控1",
"location": "港口A区",
"status": "online",
"video_url": "/videos/port-1.mp4",
"detections": [
{"type": "person", "x": 25, "y": 35, "width": 40, "height": 80}
]
}
],
"total": 156,
"page": 1,
"size": 20
}
2.2 监控详情
GET /api/monitors/{monitor_id}
响应:
{
"id": 1,
"name": "港口区主监控",
"location": "港口区",
"status": "online",
"video_url": "/videos/port-main.mp4",
"detections": [...],
"events": [...],
"algorithms": [...]
}
3. 告警管理接口 (优先级:中)
3.1 告警列表
GET /api/alarms
参数:
- page: 1
- size: 20
- severity: high/medium/low
- status: pending/resolved
- start_time: 2024-01-01
- end_time: 2024-01-31
响应:
{
"alarms": [
{
"id": 1,
"type": "船舶靠泊",
"severity": "high",
"status": "pending",
"device": "港口区监控1",
"created_at": "2024-01-15T10:30:00Z",
"description": "检测到船舶靠泊行为"
}
],
"total": 89,
"page": 1,
"size": 20
}
3.2 告警处理
PATCH /api/alarms/{alarm_id}/resolve
请求体:
{
"resolution_notes": "已确认船舶靠泊,无异常",
"resolved_by": "operator1"
}
3.3 告警统计
GET /api/alarms/stats
响应:
{
"total_alarms": 89,
"pending_alarms": 23,
"resolved_alarms": 66,
"by_severity": [
{"severity": "high", "count": 12},
{"severity": "medium", "count": 45},
{"severity": "low", "count": 32}
]
}
4. 场景管理接口 (优先级:中)
4.1 场景列表
GET /api/scenes
响应:
{
"scenes": [
{
"id": "scene-001",
"name": "港口区场景",
"description": "港口区监控场景",
"device_count": 45,
"algorithm_count": 3
}
]
}
4.2 场景详情
GET /api/scenes/{scene_id}
响应:
{
"id": "scene-001",
"name": "港口区场景",
"description": "港口区监控场景",
"devices": [...],
"algorithms": [...],
"events": [...]
}
5. 文件上传接口 (优先级:中)
5.1 视频上传
POST /api/upload/video
Content-Type: multipart/form-data
请求体:
- file: 视频文件
- device_id: 设备ID
- description: 描述
响应:
{
"file_id": "video_123",
"file_url": "/uploads/videos/video_123.mp4",
"file_size": 1024000,
"duration": 30.5
}
5.2 图片上传
POST /api/upload/image
Content-Type: multipart/form-data
请求体:
- file: 图片文件
- event_id: 事件ID
响应:
{
"file_id": "image_456",
"file_url": "/uploads/images/image_456.jpg",
"file_size": 256000
}
6. 用户认证接口 (优先级:低)
6.1 用户登录
POST /api/auth/login
请求体:
{
"username": "admin",
"password": "password123"
}
响应:
{
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
"token_type": "bearer",
"expires_in": 3600,
"user": {
"id": 1,
"username": "admin",
"role": "admin"
}
}
6.2 用户信息
GET /api/auth/profile
响应:
{
"id": 1,
"username": "admin",
"email": "admin@example.com",
"role": "admin",
"permissions": ["read", "write", "admin"]
}
开发进度
✅ 已完成 (第一阶段)
- ✅ 仪表板统计接口 (KPI、告警趋势、摄像头统计、算法统计、事件热点)
- ✅ 监控管理接口 (监控列表、监控详情)
✅ 已完成 (第二阶段)
- ✅ 告警管理接口 (告警列表、告警处理、告警统计)
- ✅ 场景管理接口 (场景列表、场景详情)
✅ 已完成 (第三阶段)
- ✅ 文件上传接口 (视频上传、图片上传)
- ✅ 用户认证接口 (登录、用户信息)
🔄 待优化功能
- 实现真实的告警趋势统计 (当前使用模拟数据)
- 实现真实的检测数据获取 (当前使用模拟数据)
- 实现真实的视频流URL生成
- 实现真实的JWT验证中间件
- 实现真实的场景管理数据库模型
- 实现真实的文件删除逻辑
- 添加Redis缓存支持
- 添加WebSocket实时数据推送
技术实现要点
-
数据库模型扩展:
- 添加统计相关的视图或缓存表
- 优化查询性能,添加索引
-
缓存策略:
- 使用Redis缓存统计数据
- 设置合理的缓存过期时间
-
文件存储:
- 配置静态文件服务
- 实现文件上传和存储逻辑
-
权限控制:
- 实现JWT认证
- 添加角色和权限控制
-
WebSocket支持:
- 实时监控数据推送
- 告警实时通知
测试计划
- 单元测试:每个接口的CRUD操作
- 集成测试:前后端联调
- 性能测试:大数据量下的响应时间
- 安全测试:认证和权限验证
部署计划
- 开发环境:本地测试
- 测试环境:功能验证
- 生产环境:正式部署
注意事项
- 所有接口需要添加错误处理和日志记录
- 敏感数据需要加密存储
- 文件上传需要限制文件大小和类型
- 统计数据需要定期更新,避免过期数据
- 接口文档需要及时更新