Files
usda-vision/management-dashboard-web-app/API Documentations/docs/API_QUICK_REFERENCE.md

4.2 KiB
Executable File

🚀 USDA Vision Camera System - API Quick Reference

Quick reference for the most commonly used API endpoints. For complete documentation, see API_DOCUMENTATION.md.

🔧 System Status

# Health check
curl http://localhost:8000/health

# System overview
curl http://localhost:8000/system/status

# All cameras
curl http://localhost:8000/cameras

# All machines
curl http://localhost:8000/machines

🎥 Recording Control

Start Recording (Basic)

curl -X POST http://localhost:8000/cameras/camera1/start-recording \
  -H "Content-Type: application/json" \
  -d '{"filename": "test.avi"}'

Start Recording (With Settings)

curl -X POST http://localhost:8000/cameras/camera1/start-recording \
  -H "Content-Type: application/json" \
  -d '{
    "filename": "high_quality.avi",
    "exposure_ms": 2.0,
    "gain": 4.0,
    "fps": 5.0
  }'

Stop Recording

curl -X POST http://localhost:8000/cameras/camera1/stop-recording

🤖 Auto-Recording

# Enable auto-recording
curl -X POST http://localhost:8000/cameras/camera1/auto-recording/enable

# Disable auto-recording
curl -X POST http://localhost:8000/cameras/camera1/auto-recording/disable

# Check auto-recording status
curl http://localhost:8000/auto-recording/status

🎛️ Camera Configuration

# Get camera config
curl http://localhost:8000/cameras/camera1/config

# Update camera settings
curl -X PUT http://localhost:8000/cameras/camera1/config \
  -H "Content-Type: application/json" \
  -d '{
    "exposure_ms": 1.5,
    "gain": 3.0,
    "sharpness": 130
  }'

📺 Live Streaming

# Start streaming
curl -X POST http://localhost:8000/cameras/camera1/start-stream

# Get MJPEG stream (use in browser/video element)
# http://localhost:8000/cameras/camera1/stream

# Stop streaming
curl -X POST http://localhost:8000/cameras/camera1/stop-stream

🔄 Camera Recovery

# Test connection
curl -X POST http://localhost:8000/cameras/camera1/test-connection

# Reconnect camera
curl -X POST http://localhost:8000/cameras/camera1/reconnect

# Full reset
curl -X POST http://localhost:8000/cameras/camera1/full-reset

💾 Storage Management

# Storage statistics
curl http://localhost:8000/storage/stats

# List files
curl -X POST http://localhost:8000/storage/files \
  -H "Content-Type: application/json" \
  -d '{"camera_name": "camera1", "limit": 10}'

# Cleanup old files
curl -X POST http://localhost:8000/storage/cleanup \
  -H "Content-Type: application/json" \
  -d '{"max_age_days": 30}'

📡 MQTT Monitoring

# MQTT status
curl http://localhost:8000/mqtt/status

# Recent MQTT events
curl http://localhost:8000/mqtt/events?limit=10

🌐 WebSocket Connection

// Connect to real-time updates
const ws = new WebSocket('ws://localhost:8000/ws');

ws.onmessage = (event) => {
  const update = JSON.parse(event.data);
  console.log('Update:', update);
};

📊 Response Examples

System Status Response

{
  "system_started": true,
  "mqtt_connected": true,
  "cameras": {
    "camera1": {
      "name": "camera1",
      "status": "ACTIVE",
      "is_recording": false,
      "auto_recording_enabled": true
    }
  },
  "active_recordings": 0,
  "total_recordings": 15
}

Recording Start Response

{
  "success": true,
  "message": "Recording started for camera1",
  "filename": "20240115_103000_test.avi"
}

Camera Status Response

{
  "name": "camera1",
  "status": "ACTIVE",
  "is_recording": false,
  "auto_recording_enabled": true,
  "auto_recording_active": false,
  "auto_recording_failure_count": 0
}

💡 Tips

  • All filenames automatically get datetime prefixes: YYYYMMDD_HHMMSS_
  • Camera settings can be updated in real-time during recording
  • Auto-recording is controlled per camera and globally
  • WebSocket provides real-time updates for dashboard integration
  • CORS is enabled for web application integration