{ "name": "ContaminUS", "version": "1.0.0", "logic_api": [ { "method": "POST", "path": "/api/v1/batch", "description": "Añadir los valores de los sensores (batch)", "params": [ { "name": "deviceId", "type": "integer", "description": "ID del dispositivo", "in": "body", "required": true }, { "name": "sensorId", "type": "integer", "description": "ID del sensor", "in": "body", "required": true }, { "name": "lat", "type": "float", "description": "Latitud", "in": "body", "required": true }, { "name": "lon", "type": "float", "description": "Longitud", "in": "body", "required": true }, { "name": "temperature", "type": "float", "description": "Temperatura", "in": "body", "required": true }, { "name": "humidity", "type": "float", "description": "Humedad", "in": "body", "required": true }, { "name": "pressure", "type": "float", "description": "Presión", "in": "body", "required": true }, { "name": "value", "type": "float", "description": "Valor de CO", "in": "body", "required": true }, { "name": "timestamp", "type": "long", "description": "Marca temporal del valor", "in": "body", "required": true } ] }, { "method": "GET", "path": "/api/v1/groups/:groupId/devices/:deviceId/latest-values", "description": "Obtener los últimos valores de un dispositivo", "params": [ { "name": "groupId", "type": "integer", "description": "ID del grupo", "in": "path", "required": true }, { "name": "deviceId", "type": "integer", "description": "ID del dispositivo", "in": "path", "required": true } ] }, { "method": "GET", "path": "/api/v1/groups/:groupId/devices/:deviceId/pollution-map", "description": "Obtener el mapa de contaminación de un dispositivo", "params": [ { "name": "groupId", "type": "integer", "description": "ID del grupo", "in": "path", "required": true }, { "name": "deviceId", "type": "integer", "description": "ID del dispositivo", "in": "path", "required": true } ] }, { "method": "GET", "path": "/api/v1/groups/:groupId/devices/:deviceId/history", "description": "Obtener el histórico de un dispositivo", "params": [ { "name": "groupId", "type": "integer", "description": "ID del grupo", "in": "path", "required": true }, { "name": "deviceId", "type": "integer", "description": "ID del dispositivo", "in": "path", "required": true } ] }, { "method": "GET", "path": "/api/v1/groups/:groupId/devices/:deviceId/sensors/:sensorId/values", "description": "Obtener los valores de un sensor específico", "params": [ { "name": "groupId", "type": "integer", "description": "ID del grupo", "in": "path", "required": true }, { "name": "deviceId", "type": "integer", "description": "ID del dispositivo", "in": "path", "required": true }, { "name": "sensorId", "type": "integer", "description": "ID del sensor", "in": "path", "required": true } ] }, { "method": "GET", "path": "/api/v1/groups/:groupId/devices/:deviceId/actuators/:actuator_id/status", "description": "Obtener el estado de un actuador", "params": [ { "name": "groupId", "type": "integer", "description": "ID del grupo", "in": "path", "required": true }, { "name": "deviceId", "type": "integer", "description": "ID del dispositivo", "in": "path", "required": true }, { "name": "actuator_id", "type": "integer", "description": "ID del actuador", "in": "path", "required": true } ] }, { "method": "POST", "path": "/api/v1/groups/:groupId/devices/:deviceId/actuators/:actuatorId/status", "description": "Crear un nuevo dispositivo en un grupo", "params": [ { "name": "groupId", "type": "integer", "description": "ID del grupo", "in": "body", "required": true }, { "name": "deviceId", "type": "integer", "description": "ID del dispositivo", "in": "body", "required": true }, { "name": "actuatorId", "type": "string", "description": "ID del actuador", "in": "body", "required": true } ] } ], "raw_api": [ { "method": "GET", "path": "/api/raw/v1/groups", "description": "Obtener todos los grupos" }, { "method": "POST", "path": "/api/raw/v1/groups", "description": "Crear un nuevo grupo", "params": [ { "name": "groupId", "type": "integer", "description": "ID del grupo", "in": "body", "required": true }, { "name": "groupName", "type": "string", "description": "Nombre del grupo", "in": "body", "required": true } ] }, { "method": "GET", "path": "/api/raw/v1/groups/:groupId/devices", "description": "Obtener todos los dispositivos de un grupo", "params": [ { "name": "groupId", "type": "integer", "description": "ID del grupo", "in": "path", "required": true } ] }, { "method": "POST", "path": "/api/raw/v1/groups/:groupId/devices", "description": "Crear un nuevo dispositivo en un grupo", "params": [ { "name": "deviceId", "type": "integer", "description": "ID del dispositivo", "in": "body", "required": true }, { "name": "groupId", "type": "integer", "description": "ID del grupo", "in": "body", "required": true }, { "name": "deviceName", "type": "string", "description": "Nombre del dispositivo", "in": "body", "required": true } ] }, { "method": "GET", "path": "/api/raw/v1/groups/:groupId/devices/:deviceId", "description": "Obtener un dispositivo de un grupo", "params": [ { "name": "groupId", "type": "integer", "description": "ID del grupo", "in": "path", "required": true }, { "name": "deviceId", "type": "integer", "description": "ID del dispositivo", "in": "path", "required": true } ] }, { "method": "PUT", "path": "/api/raw/v1/groups/:groupId/devices/:deviceId", "description": "Actualizar un dispositivo de un grupo", "params": [ { "name": "groupId", "type": "integer", "description": "ID del grupo", "in": "path", "required": true }, { "name": "deviceId", "type": "integer", "description": "ID del dispositivo", "in": "path", "required": true } ] }, { "method": "GET", "path": "/api/raw/v1/groups/:groupId/devices/:deviceId/sensors", "description": "Obtener todos los sensores de un dispositivo", "params": [ { "name": "groupId", "type": "integer", "description": "ID del grupo", "in": "path", "required": true }, { "name": "deviceId", "type": "integer", "description": "ID del dispositivo", "in": "path", "required": true } ] }, { "method": "POST", "path": "/api/raw/v1/groups/:groupId/devices/:deviceId/sensors", "description": "Crear un nuevo sensor", "params": [ { "name": "sensorId", "type": "integer", "description": "ID del sensor", "in": "body", "required": true }, { "name": "deviceName", "type": "string", "description": "Nombre del dispositivo", "in": "body", "required": true } ] }, { "method": "GET", "path": "/api/raw/v1/groups/:groupId/devices/:deviceId/sensors/:sensorId", "description": "Obtener un sensor específico", "params": [ { "name": "groupId", "type": "integer", "description": "ID del grupo", "in": "path", "required": true }, { "name": "deviceId", "type": "integer", "description": "ID del dispositivo", "in": "path", "required": true }, { "name": "sensorId", "type": "integer", "description": "ID del sensor", "in": "path", "required": true } ] }, { "method": "PUT", "path": "/api/raw/v1/groups/:groupId/devices/:deviceId/sensors/:sensorId", "description": "Actualizar un sensor específico", "params": [ { "name": "groupId", "type": "integer", "description": "ID del grupo", "in": "path", "required": true }, { "name": "deviceId", "type": "integer", "description": "ID del dispositivo", "in": "path", "required": true }, { "name": "sensorId", "type": "integer", "description": "ID del sensor", "in": "path", "required": true } ] }, { "method": "GET", "path": "/api/raw/v1/groups/:groupId/devices/:deviceId/sensors/:sensorId/values", "description": "Obtener los valores de un sensor", "params": [ { "name": "groupId", "type": "integer", "description": "ID del grupo", "in": "path", "required": true }, { "name": "deviceId", "type": "integer", "description": "ID del dispositivo", "in": "path", "required": true }, { "name": "sensorId", "type": "integer", "description": "ID del sensor", "in": "path", "required": true } ] }, { "method": "GET", "path": "/api/raw/v1/v_latest_values", "description": "Vista: últimos valores registrados" }, { "method": "GET", "path": "/api/raw/v1/v_pollution_map", "description": "Vista: mapa de contaminación" }, { "method": "GET", "path": "/api/raw/v1/v_sensor_history_by_device", "description": "Vista: histórico de sensores por dispositivo" }, { "method": "GET", "path": "/api/raw/v1/v_sensor_values", "description": "Vista: valores individuales de sensores" } ] }