Crea nuevas experiencias digitales con Liferay Objects

Durante el desarrollo de un sitio web utilizando Liferay, a menudo necesitamos crear aplicaciones que almacenen ciertos datos y que gestionen las acciones que los usuarios realizan sobre esos datos. 

Tanto si has trabajado con Liferay como si no, las palabras “almacenar datos” y “gestionar las acciones de un usuario” ya te llevan a pensar que será necesario generar código para crear tablas, para generar la capa de persistencia, la capa de servicios, etc. 

¿Y si no fuera necesario escribir ninguna línea de código y la aplicación se pudiese construir desde una interfaz gráfica? Demos la bienvenida al Low Code en Liferay.

Low code es un nuevo enfoque de desarrollo que permite que cualquier persona pueda crear aplicaciones sin necesidad de escribir código y Liferay lo ha incorporado en su versión 7.4 a través del framework Liferay Objects.

 

Qué son los Objects

 

Un Object es una aplicación creada a través de una interfaz de usuario que te proporciona Liferay. Cuando creas un Object puedes indicar qué campos dispone, qué relaciones tiene con otros Objects o diseñar los formularios de creación de entradas para tu Object, entre otras cosas. 

Los Objects se integran perfectamente con todos los frameworks core de Liferay: Assets, Permissions, Headless Rest APIs, Job Scheduler, Workflow o Form. Gracias a ello podremos crear automáticamente un API Rest y GraphQL, para nuestra aplicación, controlar el acceso a los datos o el flujo de trabajo que se debe seguir para publicar la información. 

En pocas palabras, con cada Object que crees, Liferay creará automáticamente una tabla para almacenar los datos, todas las operaciones CRUD asociadas, los formularios de creación y edición, expondrá un endpoint que podrá ser consumido por cualquier otra aplicación y permitirá visualizar los datos en cualquier página web.

Antes de seguir, decirte que este post no pretende ser un tutorial paso a paso de cómo se gestionan los Objects, para eso está la documentación oficial de Liferay, si no que la intención es que al finalizar su lectura tengas una idea de cómo esta nueva funcionalidad puede ayudarte.

Pongámonos manos a la obra y vayamos a ver un ejemplo de cómo funciona este nuevo framework creando dos Objects de ejemplo que nos permitan poder solicitar alojamiento para nuestras mascotas.

 

Construyendo los Objects

 

Nuestra aplicación de alojamiento para mascotas será muy sencilla, necesitará sólo dos Objects: Mascota y Alojamiento y una relación entre ambos Objects: Solicitud

En primer lugar, vamos a crear el Object Alojamiento, para ello iremos a Panel de control > Objectos y seleccionaremos el botón Añadir Object.

 

Crea nuevas experiencias digitales con low code de liferay - añadir object

 

Para cada Object podremos indicar:

  • Los campos que dispondrá. Estos campos serán los que representen las columnas de la tabla de nuestro Object. 
  • Qué relaciones tiene con las entradas de otros Objects. Sólo es posible definir relaciones del tipo One to many y Many to Many.
  • Definir el diseño del formulario de creación y edición. Por defecto, Liferay siempre creará un formulario mostrando todos los campos que hayamos definido para nuestro Object.
  • Definir el diseño del listado de entradas de nuestro Object. Por defecto, dispondremos de un formulario con todos los campos de nuestro Object
  • Qué acciones se dispararán cuando se realice algún cambio sobre una entrada de nuestro Object. Actualmente, sólo se pueden disparar acciones mediante webhooks para cargar datos en una fuente externa.
  • Y las validaciones que se realizarán sobre cada uno de los campos que definamos.

Para el Object Alojamiento, vamos a definir sus campos, el diseño del formulario de creación y edición y el diseño de la tabla que mostrará las entradas de nuestra aplicación:

  • Campos Object Alojamiento

 

Nuevas experiencias digitales con Low Code - Campos Object Alojamiento

 

  • Diseño del formulario de creación/edición

 

Nuevas experiencias digitales con low code - Diseño del formulario de creación/edición

 

  • Diseño de la tabla para presentar los datos

 

Nuevas experiencias digitales con Liferay Objects - Diseño de la tabla para presentar los datos

 

Y para el Object Mascotas, vamos a definir sus campos y una relación con las entradas del Object Alojamiento, que representará la solicitud de alojamiento. El resto de las opciones las dejaremos por defecto.

  • Campos Object Mascota

 

Nuevas experiencias digitales con Liferay Objects - Campos Object Mascota

 

El campo Raza, de tipo PickList es un tipo de campo especial que nos permite definir una lista de valores predefinidos. De este modo, podemos normalizar las entradas para ese campo.

  • Relación Solicitud

Esta relación será de tipo One to Many, ¡una mascota podrá realizar muchas solicitudes de alojamiento!

Para ello, desde la pestaña Relaciones del Object Mascota crearemos una nueva relación con los siguientes datos:

 

Nuevas experiencias digitales con Liferay Objects - Nueva relación

 

Ahora que hemos creado esta nueva relación, puedes aprovechar y actualizar los diseños del formulario de creación/edición y del listado de entradas del Object Alojamiento para incluir esta relación.

 

Digital Lover

Publicando los Objects

 

Mientras estamos definiendo nuestro Object, Liferay no crea nada en su base de datos ni genera ningún código para interactuar con los Objects. Su magia no empieza hasta que decidimos publicarlos. 

¿Cómo se realiza la publicación de Mascota y Alojamiento? Muy fácil, sólo tendremos que ir al listado de Objects y acceder a cada uno de ellos y pulsar el botón Publicar

 

Nuevas experiencias digitales con Liferay Objects - Publicar

 

Tras publicar nuestro Object, ocurre lo siguiente:

  • Nuestra aplicación se crea y se publica dentro de Liferay. Podremos acceder a ella desde la sección que hayamos indicado en el apartado Ámbito, en este caso, se ha indicado que la aplicación estará accesible desde panel de control (Compañía) sección: Aplicaciones > Aplicaciones personalizadas
  • Liferay crea las tablas bases en base de datos para poder almacenar los datos que los usuarios introduzcan:

 

Nuevas experiencias digitales con Liferay Objects - Liferay crea las tablas bases

 

  • Generará un API REST y GraphQL para poder interactuar con nuestros Objects, proporcionando así un acceso headless para poder realizar todas las operaciones CRUD. Estos endpoint son accesibles desde la dirección que te ofrecemos: http://localhost:8080/o/api y seleccionando la aplicación que queremos consultar:

 

Nuevas experiencias digitales con Liferay Objects - Seleccionar aplicación a consultar

 

  • Liferay crea un Collection Provider el cual podrás utilizar para mostrar los datos en cualquier página

 

Probando los Objects

 

Una vez que tenemos nuestros Objects publicados, vamos a mostrar diferentes casos de usos para que podáis ver qué nos aporta esta nueva funcionalidad:

Alta de mascotas usando el API Rest

Vamos a hacer uso del API Rest que Liferay nos ha creado. Para ello, accederemos a Liferay API Explorer: http://localhost:8080/o/api y seleccionaremos el endpoint de Mascotas.

Invocaremos el endpoint postMascota proporcionando todos los datos necesarios para nuestra nueva mascota:

 

Nuevas experiencias digitales con Liferay Objects - Datos para la nueva mascota

 

Al ejecutar la petición, Liferay crea una nueva mascota y nos devuelve todas las operaciones disponibles que podemos realizar sobre ella, así como los datos de la nueva mascota que acabamos de dar de alta:

 

Nuevas experiencias digitales con Liferay Objects - Operaciones disponibles

 

Para verificar que los datos se han dado de alta correctamente, podemos acceder a nuestro Object, ¡recuerda que la publicamos en Aplicaciones > Aplicaciones personalizadas!

 

Nuevas experiencias digitales con Liferay Objects - Accedemos a nuestro Object

 

Y ahí podemos ver nuestra mascota “Merlí” como ha sido añadida a nuestra aplicación.

Solicitud de alojamiento usando el formulario que nos ha creado Liferay

Ahora vamos a usar el formulario de alta que hemos definido anteriormente. Para ello accedemos a nuestro Object Alojamientos y creamos una solicitud de alojamiento:

 

Nuevas experiencias digitales con Liferay Objects - Creamos una solicitud de alojamiento

 

Al guardar nuestra solicitud, podremos ver que esta se ha dado de alta correctamente:

 

Nuevas experiencias digitales con Liferay Objects - Alta solicitud

 

Mostrar las solicitudes de alojamiento en una página

Ahora que ya disponemos de mascotas y solicitudes de alojamiento podemos crearnos una página: Alojamiento para Mascotas donde podamos mostrar esta información. 

Gracias a la integración de Objects con el framework Asset, al publicar nuestra aplicación ya disponemos de una colección con todas las entradas de nuestro Object. Estas colecciones, podemos agregarlas a cualquier página mediante el componente “Visor de colección” y visualizarlas:

 

Nuevas experiencias digitales con Liferay Objects - Visor de colección

 

Así, ya disponemos de nuestra página Alojamiento para mascotas en la cual podremos ver todas las mascotas que están registradas y todas aquellas solicitudes de alojamiento que se han recibido.

 

Conclusión

 

No todas las aplicaciones se podrán implementar a través de los Objects, pero estos nos ayudarán a crear aplicaciones sencillas y a integrarlas con otras aplicaciones sin necesidad de escribir ninguna línea de código. Sin duda alguna, pienso que nos ayudarán a reducir el Time to Market de muchos websites. Además, su fácil uso permite que este tipo de aplicaciones puedan ser creadas por los usuarios de negocio, liberando así a los equipos de IT.

Su integración con los frameworks core de Liferay los convierte en una herramienta muy potente ya que no perderemos las capacidades de publicación, gestión de permisos, comunicación con terceros, etc. que Liferay nos ofrece para sus aplicaciones o para aquellas que desarrollamos. 

Si tienes ganas de saber más, te animo a que revises la documentación oficial de Liferay y sobre todo que hagas varias POCs para ver hasta dónde puedes llegar con los Objects.

He leído y acepto la política de privacidad
Acepto recibir emails sobre actividades de recruiting NTT DATA