Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Descripción general


Los datos recibidos a través de la API se asocian a una estación o dispositivo. Dicho dispositivo viene identificado por un código único.
Para el envío de datos variable valor, se realizará una petición POST con un payload JSON como se especifica más adelante.
Todas las peticiones de envío de datos necesitarán proveer un API key en la cabecera HTTP "X-API-Key", que identifica quién realiza el envío de datos, y deberán estar firmadas mediante HMAC-SHA256 provisto en la cabecera HTTP "X-Signature" como se describe más adelante, utilizando un API-secret.

Envío de datos variable-valor

...

Ejemplo de petición:
curl -i -XPOST -H "X-API-Key: api-key" -H "X-Signature: signature" -H "Content-Type: application/json" -H "Accept: application/json" -d '{"HIST":{"DATA":{"VAR_1":0.34,"VAR_2":"texto"},"VERSION":"10.0.0","UTC":1518778157,"IMEI":" IMEI_GPS"}}' URLhttp://ror1.staging.nazaries.cloud/third_party_api/v1/submit/data

Cálculo de la firma (signature):

...

1. Componer la cadena de texto con la información a firmar:

...

 "<<Método HTTP>><<URL de la petición>>?<<Trama JSON>>"
Ej. "POSTlocalhost:8080/submitData. Por ejemplo: 

POSTror1.staging.nazaries.cloud/third_party_api/v1/submit/data? {"HIST":{"DATA":{"VAR_1":0.34,"VAR_2":"texto"},"VERSION":"10.0.0","UTC":1518778157,"IMEI":" APP-FINCA1-CULTIVO1IMEI_GPS"}}

2. Firmar la cadena de texto anterior mediante HMAC-SHA256, utilizando como secreto el API-secret provisto por Nazaríes y codificar el resultado en base64

Ejemplo en ruby: Base64.strict_encode64(OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha256'), token, data))

Ejemplo en JS usando crypto-js: Base64.stringify(hmacSHA256(data, token))

Url para el envío de datos

Para el entorno de preproducción:

ror1.staging.nazaries.cloud/inputthird_party_api/v1/submit/data

Para el entorno de producción:

ceres-api-tp1.nazaries.cloud/inputthird_party_api/v1/submit/data

Configurar estaciones

Cuando una estación nueva, emite por primera vez usando este endpoint, se añadirá automáticamente al third_party_api_key de la clave que se la ha pasado. Si la estación ha emitido previamente, es necesario añadir manualmente al api_key en /admin/third_party_api_key