Saltar al contenido principal

POST /api/devices/{deviceId}/locations

Este endpoint permite enviar datos de ubicación para un dispositivo específico en la aplicación de seguimiento satelital. Es útil para actualizar el sistema con nueva información de ubicación del dispositivo.

Detalles de la Solicitud

La solicitud se realiza utilizando el método POST en la URL /api/devices/{deviceId}/locations. Debes reemplazar {deviceId} con el ID real del dispositivo que deseas actualizar.

Parámetros de la Solicitud

Este endpoint requiere el parámetro deviceId que debe incluirse en la ruta de la URL.

ParámetroTipoObligatorioDescripción
deviceIdstringEl identificador único del dispositivo a actualizar.

Parámetros del Cuerpo de la Solicitud

El cuerpo de la solicitud debe incluir un objeto JSON con los datos de ubicación para el dispositivo.

CampoTipoObligatorioDescripción
fromstringFecha y hora de inicio de los datos de ubicación, en formato ISO 8601.
tostringFecha y hora de fin de los datos de ubicación, en formato ISO 8601.
locationobjectObjeto que contiene los datos de ubicación.

Dentro del campo location, el objeto tiene los siguientes campos:

CampoTipoObligatorioDescripción
dateTimestringFecha y hora de la ubicación, en formato ISO 8601.
latitudenumberLatitud de la ubicación.
longitudenumberLongitud de la ubicación.
speednumberNoVelocidad en la ubicación.
coursenumberNoCurso (dirección) en la ubicación.
batteryintegerNoNivel de batería del dispositivo en la ubicación.
fuelintegerNoNivel de combustible del dispositivo en la ubicación.
fuel2integerNoNivel de combustible secundario en la ubicación.
temperaturenumberNoTemperatura medida en la ubicación.
temperature2numberNoTemperatura secundaria medida en la ubicación.
sensorTime1integerNoTiempo del sensor 1 en la ubicación.
sensorTime2integerNoTiempo del sensor 2 en la ubicación.
sensorTime3integerNoTiempo del sensor 3 en la ubicación.
sensorTime4integerNoTiempo del sensor 4 en la ubicación.
inactiveSecondsintegerNoSegundos de inactividad en la ubicación.
rpmintegerNoRevoluciones por minuto en la ubicación.
milleagenumberNoKilometraje en la ubicación.
warningTextsarrayNoTextos de advertencia en la ubicación.
alertTextsarrayNoTextos de alerta en la ubicación.
alertsarrayNoAlertas en la ubicación.
warningsarrayNoAdvertencias en la ubicación.
hasCriticalAlertbooleanNoIndica si hay alertas críticas en la ubicación.
attributesobjectNoAtributos adicionales en la ubicación.
accessoriesAttributesarrayNoAtributos adicionales de accesorios en la ubicación.
inputsarrayNoEstado de las entradas en la ubicación.
outputsarrayNoEstado de las salidas en la ubicación.

Autenticación Requerida

La autenticación requerida para utilizar el endpoint es mediante un token Bearer. Este método de autenticación implica que cada solicitud debe incluir un encabezado de autorización con un token de acceso válido. Este token Bearer actúa como una credencial que verifica la identidad del usuario o aplicación que realiza la solicitud, asegurando que solo las entidades autorizadas puedan modificar la información del usuario. Al requerir este tipo de autenticación, el sistema garantiza un nivel elevado de seguridad y control de acceso, protegiendo los datos de los usuarios contra accesos no autorizados.

Ejemplo de Solicitud

POST /api/devices/device123/locations HTTP/1.1
Host: api.plaspy.com
Authorization: Bearer {token}
Content-Type: application/json

{
"from": "2024-06-01T00:00:00Z",
"to": "2024-06-01T23:59:59Z",
"location": {
"dateTime": "2024-06-01T12:00:00Z",
"latitude": 40.712776,
"longitude": -74.005974,
"speed": 60.5,
"course": 180.0,
"battery": 85,
"fuel": 50,
"fuel2": 50,
"temperature": 22.5,
"temperature2": 22.0,
"sensorTime1": 1234567890,
"sensorTime2": 1234567891,
"sensorTime3": 1234567892,
"sensorTime4": 1234567893,
"inactiveSeconds": 120,
"rpm": 3000,
"milleage": 15000,
"warningTexts": ["Engine Check"],
"alertTexts": ["Speeding"],
"alerts": ["High Speed"],
"warnings": ["Low Fuel"],
"hasCriticalAlert": true,
"attributes": {
"customAttribute1": "value1",
"customAttribute2": "value2"
},
"accessoriesAttributes": [
{
"accessoryType": "sensor",
"accessoryStatus": "active"
}
],
"inputs": [true, false, true],
"outputs": [false, true]
}
}

Parámetros de Respuesta

La respuesta de este endpoint incluye detalles sobre el éxito de la operación y cualquier error que pueda haber ocurrido.

CampoTipoObligatorioDescripción
successbooleanIndica si la solicitud fue exitosa.
errorstringNoMensaje de error en caso de que la solicitud falle.
apiUsageintegerNoUso de la API en la solicitud actual.
apiDailyUsageintegerNoUso diario de la API.
locationsarrayNoLista de objetos de ubicación si la solicitud fue exitosa. Cada objeto contiene información detallada sobre la ubicación.

Ejemplo de Respuesta Exitosa

{
"success": true,
"apiUsage": 150,
"apiDailyUsage": 3000,
"locations": [
{
"dateTime": "2024-06-01T12:00:00Z",
"latitude": 40.712776,
"longitude": -74.005974,
"speed": 60.5,
"course": 180.0,
"battery": 85,
"fuel": 50,
"fuel2": 50,
"temperature": 22.5,
"temperature2": 22.0,
"sensorTime1": 1234567890,
"sensorTime2": 1234567891,
"sensorTime3": 1234567892,
"sensorTime4": 1234567893,
"inactiveSeconds": 120,
"rpm": 3000,
"milleage": 15000,
"warningTexts": ["Engine Check"],
"alertTexts": ["Speeding"],
"alerts": ["High Speed"],
"warnings": ["Low Fuel"],
"hasCriticalAlert": true,
"attributes": {
"customAttribute1": "value1",
"customAttribute2": "value2"
},
"accessoriesAttributes": [
{
"accessoryType": "sensor",
"accessoryStatus": "active"
}
],
"inputs": [true, false, true],
"outputs": [false, true]
}
]
}

Ejemplo de Respuesta de Error

Respuesta de Error 400 (Bad Request)

{
"success": false,
"error": "Bad Request",
"apiUsage": 150,
"apiDailyUsage": 3000
}

Respuesta de Error 500 (Internal Server Error)

{
"success": false,
"error": "Internal Server Error",
"apiUsage": 150,
"apiDailyUsage": 3000
}

Este endpoint es esencial para actualizar los datos de ubicación de un dispositivo dentro del sistema. Permite a los usuarios enviar información de ubicación detallada y actualizada para un dispositivo específico, asegurando un seguimiento y monitoreo precisos.