Saltar al contenido

Creando tu Primera Aplicación Flogo

En la publicación anterior, presentamos la tecnología Flogo como una de las cosas en la industria del desarrollo nativo en la nube y ahora vamos a construir nuestra primera aplicación Flogo e intentar cubrir todas las opciones que describimos en la publicación anterior.

NOTA .- Si eres nuevo en Flogo y no leíste la publicación anterior sobre las capacidades de Flogo, por favor tómate unos minutos para leerla antes de continuar.

A partir de este momento, voy a usar Flogo Enterprise, que es el producto de núcleo abierto basado en el código abierto Project Flogo, y la versión actual es 2.5.0 como puedes ver aquí: https://docs.tibco.com/products/tibco-flogo-enterprise

Primero que nada, me gustaría presentar el escenario, este va a ser un escenario simple que muestra de la manera más sencilla los conceptos dentro de una aplicación Flogo, así que vamos a crear una aplicación Hola Mundo que va a ser expuesta usando el protocolo HTTP/JSON para comunicarse. Así que, el escenario va a ser como la imagen mostrada a continuación:

Entonces, lo primero que necesitamos hacer es lanzar la interfaz web de Flogo, así que vamos a nuestra carpeta donde tenemos nuestra instalación de TIBCO Flogo Enterprise y ejecutamos el comando desde el directorio bin

./run-studio.bat

Ahora, podemos ir a la ubicación http://localhost:8090 y vemos algo similar a esto:

Ahora, vamos a crear nuestra primera aplicación, así que hacemos clic en el botón “Crear” y proporcionamos un nombre para la aplicación, en nuestro caso la vamos a llamar “HelloWorldREST”

Ahora, entraremos en la página principal de una aplicación que es la que se muestra a continuación:

Es importante notar que los servicios Flogo se basan en flujos, por lo que puedes crear uno o más flujos que van a orquestar la lógica que necesitas implementar. Así que, lo primero que necesitamos hacer es crear un flujo, y lo vamos a hacer haciendo clic en el botón “Crear un flujo” y proporcionar un nombre para el flujo, en nuestro caso, como esta va a ser una aplicación simple, vamos a usar “main” como nombre del flujo que vamos a crear:

Y se te llevará al lienzo vacío de tu nuevo flujo “main”:

Hay dos conceptos importantes en un flujo Flogo:

  • Disparador: Esta es la forma en que este flujo va a ser iniciado, hay varias maneras de iniciar un flujo Flogo, por ejemplo, con una solicitud HTTP o un temporizador, o una fuente de eventos AWS Lambda, un tema de Kafka o un mensaje MQTT, etc. Puedes tener uno o más disparadores en tu aplicación y deberías tener uno si este es un flujo principal (en lugar de un subflujo que discutiremos en una publicación diferente). Los disparadores se muestran a la izquierda del lienzo como pequeños iconos cuadrados como puedes ver en la imagen a continuación:
  • Actividades: Son las que van a decidir qué lógica se va a ejecutar. Cada actividad tiene una acción que realizar que podría ser una interna como un registro de trazas o una externa como invocar un servicio REST o algo similar, y vamos a usar el resto del lienzo para construir el flujo lógico.

Entonces, lo primero que necesitamos hacer es configurar el Disparador de este flujo, y para hacer eso hacemos clic en el icono de más en el área de Disparadores y seleccionamos el disparador HTTP REST:

Y lo vamos a configurar como la imagen mostrada a continuación:

  • Método: GET
  • Ruta del recurso: /hello/{name}

Y hacemos clic en Continuar y en la siguiente ventana seleccionamos “Copiar Esquema”, para copiar el Esquema de Salida del Disparador al Esquema de Entrada del Flujo. Ahora, hemos añadido el disparador pero necesitamos configurar cómo se van a transferir los datos a las actividades del flujo. Para hacer esto, hacemos clic en la “Configuración del Disparador” porque necesitamos mapear los datos del disparador a la entrada del flujo, así que en caso de que tengamos más de un disparador podemos tener diferentes mapeos de cada uno de los disparadores a la entrada del flujo.

Ahora, vamos a la pestaña de Salida y seleccionamos “name” bajo el objeto pathParams y lo mapeamos al mismo atributo (name bajo pathParams del objeto $trigger).

Así que ahora este nombre va a ser transferido a la entrada del flujo y podemos usarlo en la lógica del flujo. Ahora es el momento de construir la lógica del flujo. En este caso va a ser muy fácil, ya que ya tenemos una actividad de retorno que se añade por defecto, solo vamos a añadir una actividad de Registro para imprimir los nombres que estamos recibiendo.

Para hacer eso hacemos clic en el botón de más en el lienzo y seleccionamos dentro de la Sección General la actividad Registrar Mensaje:

Y necesitamos configurarlo como muestra la imagen a continuación:

Así que, hacemos clic en la sección de Entrada y en este caso la actividad por defecto solo tiene un parámetro llamado “mensaje” que es el mensaje de registro que se va a imprimir, y creamos una estructura basada en la concatenación de un valor constante “Recibe solicitud con nombre: “ y el nombre que fue previamente mapeado en la configuración del disparador.

Como puedes ver, siempre tienes visibles todas las funciones que tienes disponibles agrupadas en diferentes categorías y también todos los datos de la tubería que puedes usar que están siendo generados por la ejecución de todas las actividades dentro del flujo

Así que, lo último que necesitamos hacer es configurar la actividad de retorno. Para hacer eso hacemos clic en la actividad de retorno y mapeamos los atributos código (a constante 200) y mensaje a la estructura mostrada a continuación:

Y eso es todo. Estamos listos. Así que ahora podemos comenzar a probar el servicio simple que hemos creado. Para hacer eso, Flogo Studio proporciona un Motor de Pruebas capaz de verificar que la lógica que has construido está funcionando bien. Este Motor de Pruebas va a probar la lógica del flujo, no los disparadores, así que comienza desde la primera actividad y no incluye la interacción con el disparador.

Para hacer eso solo necesitas hacer clic en el botón Iniciar Pruebas y proporcionar valores de entrada a tu flujo.

En nuestro caso, como la mayor parte de la lógica se basa en el disparador, no tiene sentido hacer ese paso, pero volveremos al Motor de Pruebas en próximas publicaciones sobre el Desarrollo Flogo. Así que, en lugar de hacer eso, vamos a construir el servicio directamente. Para hacer eso salimos del lienzo del flujo y volvemos a la página principal de la aplicación y vamos a hacer clic en el botón Construir y seleccionar la arquitectura que vas a usar para probar tu aplicación, en mi caso será Windows

Y eso va a generar un archivo ejecutable, en mi caso una aplicación EXE que tiene mi lógica que solo necesitamos ejecutar para ejecutar nuestro servicio

Así que, ahora, lo lanzamos y obtendremos una salida similar a esta:

Para probar la aplicación vamos a abrir una nueva pestaña en nuestro navegador y escribir la siguiente URL:

http://localhost:9999/hello/bob

Y obtenemos una respuesta como esta: