Versions Compared

Key

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

...

Un ejemplo de esquema de definición de una Entidad sería similar a este ejemplo:

Code Block
languagejson
{
    "$schema": "http://json-schema.org/draft-07/schema#",
     "title": "SensorTemp",
     "type": "object",
     "required": [
           "SensorTemp"
     ],
     "properties": {
           "SensorTemp": {
                 "type": "string",
                 "$ref": "#/datos"
           }
     },
     "datos": {
           "description": "Properties for DataModel SensorTemp",
           "type": "object",
           "required": [
                 "measure",
                 "units",
                 "timestamp",
                 "geoposition"
           ],
           "properties": {
                 "measure": {
                       "type": "number"
                 },
                 "units": {
                        "type": "string"
                 },
                 "timestamp": {
                       "type": "string",
               
        "format": "date-time"
                 },
                 "geoposition": {
               
        "type": "object",
                       "required": [
                              "coordinates",
                   
          "type"
                       ],
                       "properties": {
                   
          "coordinates": {
                       
            "type": "array",
                       
            "items": [
                            {
                               
              {
                "type": "number",
                               
                "maximum": 180,
                                               "minimum": -180
                           
              },
                            {
                               
              {
                "type": "number",
                               
                "maximum": 90,
                               
                "minimum": -90
                                         }
                       
            ],
                       
            "minItems": 2,
                       
            "maxItems": 2
                   
          },
                              "type": {
                       
            "type": "string",
                                   "enum": [
                           
              "Point"
                                   ]
                    }
               
          }
        },
               
        "additionalProperties": false
                 }
           }
     },
     "description": "Temperature ontology",
     "additionalProperties": true
}

...

Para el ejemplo anterior, una instancia válida de Entidad sería:

Code Block
languagejson
{
  "SensorTemp": {
    "measure": 28.6,
    "units": "C",
    "timestamp": "2014-01-30T17:14:00Z",
    "geoposition": {
      "coordinates": [
        4 ,,
        28.6
      ],
      "type": "Point"
    }
  }
}

Cualquier instancia que no cumpla semánticamente con el esquema de definición de la Entidad destino será rechazada por la Plataforma, garantizando así la corrección de la información.

Siempre que una instancia se inserta en la Plataforma, se le añade una información de auditoría adicional dentro de una propiedad denominada «ContextData»:

Code Block
languagejsjson
   "contextData": {
            "deviceTemplate": "clientSensor",
               "device": "sensorTemperatura01",
               "clientConnection": "53643241-1497-17ea-436e-ba74618f7322 ",
               "clientSession": "64376481-4139-48cb-ad6e-dc7bdd8f73ca",
               "user": "user_developer",
               "timezoneId": "GMT",
               "timestamp": "Thu May 31 14:51:31 GMT 2018",
               "timestampMillis": 1527778291886
  }

Estos datos contextuales incluyen información referida al origen o dispositivo que ha enviado la información, la sesión que se ha utilizado, la zona horaria y el instante en el que se recibió,etc.

...