Table of Contents |
---|
Introducción
Para desarrollar una aplicación cliente de Plataforma en Javascript, debes tener previamente los siguientes archivos JS en el directorio de la aplicación:
Puedes encontrar estos Javascript aquí: https://github.com/onesaitplatform/onesait-cloud-platform-clientlibraries/tree/master/javascript-client/js
En el ejemplo se utiliza un archivo adicional llamado JsonEditor.js para mostrar la respuesta de forma más visual, pero no es estrictamente necesario.
Este archivo puedes encontrarlo aquí: https://github.com/onesaitplatform/onesait-cloud-platform-clientlibraries/tree/master/javascript-client/json
Ejemplo
Para realizar este ejemplo, entramos en el siguiente archivo HTML, op_apiJs_websocketExample.html, se encuentra en la siguiente ubicación: https://gitlab.devops.onesait.com/onesait/platform/engine/onesait-platform/onesait-cloud-platform-clientlibraries/-/tree/develop/javascript-client, el cual va a ser
el archivo que tenemos que modificar con las siguientes indicaciones:
Para empezar, debes instanciar un objeto de tipo OPClient para crear un cliente de OnesaitPlatform:
var client = new OPClient();
A continuación, debes crear un objeto donde almacenar los parámetros de configuración (en este caso, los del ejemplo seleccionado):
var config = {};
config['url'] = "http://lab.onesaitplatform.com/iot-broker/message";
config['deviceTemplate'] = 'TicketingApp'; (Debe ser igual que la template que definiste en IoTClient)
config['token'] = '0e9264405327494dac6551d01aac7e97'; (token de deviceTemplate )
config['device'] = 'TicketingApp01'; (Nombre que le darás al dispositivo)
Esta variable se pasará como parámetro al objeto cliente previamente definido usando el método configure():
client.configure(config);
Por último, debes conectarte con la plataforma usando el método connect:
client.connect();
Ejemplo con otra Ontología (AirQuality):
Una vez realizado este paso, podrás invocar todos los métodos implementados en el objeto OPClient:
Join
Query
Insert
Update
UpdateById
Remove
RemoveById
Subscriptions
JOIN
La operación Join será la primera acción que se haga, porque permite conectarse al IoTClient definido. Si todo está bien, devolverá la sessionKey, identificando la sesión actual.
QUERY
La operación Query permite obtener los datos que se almacenaron y asociaron a una ontología determinada. Debes especificar la ontología asociada a la plantilla IoTClient/deviceTemplate en el ControlPanel.
Se aceptan tanto consultas nativas como SQL. También puedes realizar consultas SQL que incluyan SELECT/UPDATE/DELETE.
Nativo con la Ontología/Entidad Ticket
SQL con la Ontología/Entidad Ticket
Si queremos filtrar la consulta:
Consulta de la Ontología/Entidad Ticket con UPDATE:
Utilizando la Query: update Ticket set Ticket.name ="Angela" where _id=OID("62fccab387b0ef1666c25da1") and Ticket.name="Pepe"
Consulta de la Ontología/Entidad Ticket con DELETE:
Utilizando la Query: delete from Ticket where _id=OID("62fccab387b0ef1666c25da1") and Ticket.name="Angela"
INSERT
La operación Insert permite insertar nuevos datos en la ontología. Asegúrate de que los datos tienen la estructura definida en el Esquema JSON de la ontología. De lo contrario no pasará la validación del Esquema. Para asegurarse de que el formato es correcto, la mejor opción es copiarlo directamente del Esquema de la Ontología (Ontology Schema), que devuelve el id de la instancia insertada.
Ten en cuenta que puedes pasar a la función un conjunto de instancias de Ontología como datos, por ejemplo:
Insertando en la Ontología Ticket
Como se muestra en la imagen, esta operación devolverá el ID del registro insertado (o los IDs en caso de que los datos sean un array), que podrás utilizar más tarde para realizar operaciones 'por id'.
UPDATE
Para actualizar una instancia existente, puede actualizar toda la instancia o actualizar los campos seleccionados.
En el primer caso, puede que quieras usar updateById. Funciona de forma similar a la función Insert.
Como se muestra en la imagen, en esta operación se modificaran los datos del id asociado, en este caso los atributos “identification” y “status“
En el segundo caso, puedes usar la función 'update'. Permite modificar un conjunto de instancias seleccionadas mediante un parámetro “query”. Esta función sólo acepta consultas nativas. Si quieres hacer actualizaciones mediante SQL, usa la función query (Como hemos visto anteriormente).
Update con la Ontología/Entidad Ticket
En la imagen anterior, se puede observar que como resultado se obtiene el numero de registros modificados por la consulta.
DELETE
Si quieres borrar una sola instancia, puedes usar 'removeById'.
Como resultado se obtiene la confirmación de la eliminación del registro (Se indica que se ha eliminado un registro).
Por otro lado, si quieres eliminar todas las instancias que coincidan con un filtro en particular, usa la función 'remove'. Esta función, de forma similar a la función update, sólo acepta queries nativas como parámetro.
Delete en la Ontología Ticket
SIMULATE
La simulación sirve para introducir o insertar datos en nuestra entidad, en la cual le ponemos tiempo que es la rapidez en la que se va ejecutando, así podemos comprobar y simular
que todo funciona correctamente y no se produce ningún fallo.
SUBSCRIPTIONS
Este API te permite suscribirte a una Ontología. Al suscribirte, cualquier inserción/actualización relacionada con la ontología suscrita, se notificará a tu cliente, causando una ejecución de tu función de callback definidapasada para manejar las notificaciones de suscripción.
Al suscribirte, recibirás un subscriptionId en la función de callback, que podrás utilizar más tarde para filtrar los mensajes de suscripción que lleguen, por ejemplo.
Echa un vistazo a la función de suscripción:
La primera función de callback devolverá como respuesta el mensaje con el ID de suscripción asociado.
La segunda función de callback se ejecutará cada vez que llegue una notificación/mensaje de suscripción.
Si ponemos el Identificador de la suscripción y el Query Field de ella misma,a continuación le damos a Subcribe y automáticamente en el input de SubcriptionId nos aparecerá el Id generado Automáticamente, en el cual mediante
el Id podremos rechazar la suscripción.