REST API: Системная телеметрия, ИИ-модели и резервное копирование
Системный API предоставляет данные о состоянии ядра, расходе оперативной памяти, стриминге логов, раздаче моделей нейросетей и утилитах бэкапа.
1. Системная статистика (GET /api/stats)
Возвращает память рантайма Go, число горутин, количество активных потоков и общий FPS:
- Требуемая роль:
viewer,operatorилиadmin
bash
curl -H "Authorization: Bearer <TOKEN>" http://localhost:8080/api/statsОтвет (200 OK):
json
{
"version": "1.0.0",
"uptime_sec": 172800,
"uptime": "48h0m0s",
"memory_alloc_mb": 140.5,
"total_alloc_mb": 2500.2,
"sys_memory_mb": 2224.0,
"num_gc": 7903,
"goroutines": 2448,
"active_streams": 600,
"total_cameras": 600,
"total_fps": 18139.0,
"total_bitrate_kbps": 1339900,
"active_recordings": 600
}2. Стриминг логов в реальном времени (GET /api/logs/stream)
Стриминг логов в формате JSON через Server-Sent Events (SSE):
- Требуемая роль:
operatorилиadmin
bash
curl -N -H "Authorization: Bearer <ADMIN_TOKEN>" http://localhost:8080/api/logs/stream3. Резервное копирование и восстановление базы данных
3.1 Экспорт снимка (GET /api/system/backup/export)
Выгрузка полного JSON-снапшота со всеми камерами, тегами, папками и пользователями:
- Требуемая роль:
admin
bash
curl -H "Authorization: Bearer <ADMIN_TOKEN>" \
http://localhost:8080/api/system/backup/export > ruseon_backup_$(date +%Y%m%d).json3.2 Восстановление снимка (POST /api/system/backup/import)
Восстановление базы данных из JSON-файла:
bash
curl -X POST http://localhost:8080/api/system/backup/import \
-H "Authorization: Bearer <ADMIN_TOKEN>" \
-H "Content-Type: application/json" \
-d @ruseon_backup_20260823.jsonОтвет (200 OK): {"message": "backup restored successfully"}.
4. Хаб доставки моделей нейросетей (GET /models/:filename)
Раздача файлов весов ONNX (например, yolo11n.onnx, yolo11s.onnx, yolo11m.onnx) с локальным дисковым кешированием в data/models/ и дедупликацией singleflight:
bash
curl -O http://localhost:8080/models/yolo11s.onnx