REST API Entidades: Crear una ontología desde una API REST y ejemplos de uso con FlowEngine y Dashboards

REST API Entidades: Crear una ontología desde una API REST y ejemplos de uso con FlowEngine y Dashboards

Este tipo de ontologías se crean a partir de una API REST externa a la plataforma. Los datos no serán almacenados en la plataforma, sino que todas las operaciones sobre estas ontologiás serán derivadas a la API REST.

Creación de ontologías REST.

Para crear una ontología basada en API REST, debes seguir los siguientes pasos:

  1. Accede a la opción de menú DEVELOPMENT > Mis Ontologías





  2. Aparecerá un listado con las ontologías ya existentes. En la esquina superior derecha selecciona el botón “Create”:





  3. A continuación selecciona el tipo de ontología que vas a crear, en este caso Creación desde una API REST





  4. Llegados a este punto, y tras rellenar nombre, descripción y demás información básica de la ontología, tienes dos opciones:




    1. Rellenar la definición de la API REST a mano.

    2. Obtener los datos de manera automática a través de un swagger Json que defina la API externa a utilizar.

      En este caso, para simplificar, opta por la segunda opción.
      Para ello, indica la URL de la definición Swagger de la API REST a usar de la siguiente manera:



      Tras hacer click en el botón Importar, aparecerá una ventana modal donde podrás seleccionar la definición (Esquema JSON) de entre todos los objetos definidos en la API:




      En este caso, selecciona el tipo Device. Tras aceptar la selección de la definición de objeto, verás que se han rellenado de manera automática las siguientes secciones:

      Nota: Todas estas secciones se pueden rellenar de manera manual o corregir sobre lo importado.


      1. URL base de la API REST:




      2. Autenticación: Se permite autenticación Basic y mediante Api Key.


        En este ejemplo, elige sin autenticación.


      3. Cabeceras: Puedes especificar las cabeceras que necesites para las llamadas a la API REST de la siguiente manera:





      4. Operaciones: En esta sección puedes definir/seleccionar las distintas operaciones de la API REST, así como darles un comportamiento por defecto dentro de la plataforma:




        Cada operación tendrá un path y método, así como un nombre. Además, tienes la posibilidad de asociar una función por defecto para cada operación. De esta manera la plataforma podrá tratar cada operación como las siguientes funciones:


        1. GET_ALL: Esta operación se usará para recuperar todos los elementos de la ontología. Será invocado en las sentencias SELECT por defecto.

        2. GET_BY_ID: Esta opción se usará para recuperar un único elemento por ID de la ontología. Será invocado en las sentencias SELECT ... WHERE ID=<value>

        3. DELETE_ALL: Esta opción se usará para eliminar todos los elementos de una ontología. Será invocado en las sentencias DELETE FROM <ontology>; (sin filtros).

        4. DELETE_BY_ID: Esta opción se usará para eliminar un único elemento de la ontología por ID. Será invocado en las sentencias DELETE FROM <ontology> WHERE ID=<value>

        5. UPDATE_BY_ID: Esta opción se usará para actualizar un único elemento de la ontología por ID. Será invocado en las sentencias UPDATE FROM <otology> SET ... WHERE ID=<value>

        6. INSERT: Esta opción se usará para insertar un nuevo objeto en una ontología. Será invocado en las sentencias INSERT INTO <ontology> ...

        No es necesario asignar un comportamiento por defecto a cada operación, aunque sí que es recomendable. Cuando vayas a hacer una consulta SQL, siempre puedes especificar la operación junto con la ontología. Por ejemplo:

                SELECT * from RestDevices.getDevicesUsingGet;

        En caso de que hubíeras asignado la función "GET_ALL" a la operación "getAllDevices", podrías hacer la consulta sin indicar la operación:

                SELECT * FROM RestDevices;

        Para asignar un tipo de operación por defecto (o para cambiar cualquier otro atributo), haz click en el icono de edición:



        De esta manera, los datos se cargarán en el formulario inferior, permitiéndote cambiar los atributos que estimes oportunos. En este ejemplo, puedes dar el comportamiento "GET_ALL" a la operación "getDevicesUsingGet":



        También es posible especificar los PATH y QUERY params de cada llamada. Puedes observarlo por ejemplo con la operación getDeviceByIdUsingGET, a la que le puedes asignar la funcionalidad "GET_BY_ID". En este caso, será obligatorio que la operación tenga un parámetro (da igual que sea path o query):


        Repitiendo estos pasos para todas las operaciones de actualización, inserción y borrado, quedarían de la siguiente manera:




      5. Esquema JSON: Al igual que para el resto de ontologías, necesitas un esquema JSON que defina el tipo de dato que tratará la ontología:





  5. Guarda la definición de la ontología haciendo click en el botón Nuevo