6.Transformar datos en una Mule Application
En esta clase os voy a explicar cómo transformar datos en una Mule Application, continuaremos manipulando el proyecto en Flow Designer desde AnyPoint Platform.
Anteriormente, creamos 2 cajitas en el Flow principal (un Listener y un logger). Ahora añadiremos un conector a la API de entrenamiento de Mulesoft y un transformador para manipular la estructura de los datos.
La API que vamos a conectar en Flow Designer podéis consultarla aquí. La API se llama Training: American Flights API y la utilizaremos de aquí en adelante para practicar y aprender con las herramientas que nos proporciona Mulesoft. Esta API nos permite realizar los métodos que hemos estado revisando en otras clases, GET, POST, PUT y DELETE de los vuelos de una compañía Americana.
Cuando realizamos una llamada a una Mule Application se genera un evento de Mule, en la clase observaremos los tipos de mensajes que puede devolver un evento, los atributos y la carga útil (Payload).
Entonces, ¿Cómo está estructurado un evento de Mule?
En el siguiente esquema podemos observar la estructura de un evento de Mule.
Y, ¿Qué es cada componente del evento?
- Mensajes de Mule: Son los datos que pasan por el Flow en la Mule Application.
- Payload: Es la información central del mensaje, los datos que procesa la Mule Application. En la clase de hoy el Payload va a contener la información de los vuelos.
- Atributos: Metadatos contenidos en el encabezado del mensaje, por ejemplo el host y el puerto al que se realiza la llamada. En la clase de hoy veremos un ejemplo en el Listener.
- Variables: Metadatos para el evento Mule. Se pueden definir y hacer referencia en la Mule Application que procesa el evento. En clases más avanzadas veremos este punto.
Por cierto, si no sabéis lo que son los metadatos podéis consultarlo en este enlace. Pero en resumen, son «datos acerca de los datos» y sirven para suministrar información sobre los datos producidos, en nuestro caso los atributos del Listener al realizar una llamada, por ejemplo.
Finalmente, vamos a transformar los datos proporcionando la estructura en el lenguaje JSON mediante un ejemplo. Una vez mapeados los atributos de entrada a los nuevos de salida definidos en el JSON, es necesario crear un script para poder aplicar la nueva estructura para todos los datos entrantes. Para ello, utilizaremos el lenguaje DataWeave 2.0 que sirve para acceder, consultar y transformar los datos de un evento de Mule (Payload en este caso).
Si quieres saber más o necesitas ayuda personalizada, puedes suscribirte a mis servicios en el siguiente enlace
➡️ SUSCRIBIRSE A INGENIERO BINARIO ⬅️
Sin más, cómo transformar datos en una Mule Application ¡dentro vídeo!
Recursos
Recursos Clase 6
American Flights API valores configuración
===========================================
Host: training4-american-api.cloudhub.io
Port: 80
Base Path: /
Protocol: HTTP
American Flights API client_id
==================================
d1374b15c6864c3682ddbed2a247a826
American Flights API client_secret
==================================
4a87fe7e2e43488c927372AEF981F066
Tranformación datos JSON example
================================
{
«airline»: «United»,
«flightCode»: «ER38sd»,
«fromAirportCode»: «LAX»,
«toAirportCode»: «SFO»,
«departureDate»: «May 21, 2016»,
«emptySeats»: 0,
«totalSeats»: 200,
«price»: 199,
«planeType»: «Boeing 737″
}
Mapear los atributos
=====================
price to price
departureDate to departureDate
plane > totalSeats to totalSeats
emptySeats to emptySeats
plane > type to planeType
code to flightCode
origin to fromAirportCode
destination to toAirportCode
DataWeave 2.0 script
=====================
(payload map (value0, index0) -> {
flightCode: value0.code,
fromAirportCode: value0.origin,
toAirportCode: value0.destination,
departureDate: value0.departureDate,
emptySeats: value0.emptySeats,
totalSeats: value0.plane.totalSeats,
price: value0.price,
planeType: value0.plane.»type»,
airline: «American»
})
Sample Data
=====================
«ID»: 1,
«code»: «ER38sd»,
«price»: 400.00,
«departureDate»: «2016/03/20»,
«origin»: «MUA»,
«destination»: «SFO»,
«emptySeats»: 0,
«plane»: {
«type»: «Boeing 737»,
«totalSeats»: 150
}
}, {
«ID»: 2,
«code»: «ER45if»,
«price»: 345.99,
«departureDate»: «2016/02/11»,
«origin»: «MUA»,
«destination»: «LAX»,
«emptySeats»: 52,
«plane»: {
«type»: «Boeing 777»,
«totalSeats»: 300
}
}]
Clases del curso
- 1. Preparar el entorno de Mulesoft (5:59)
- 2. Portal de APIs Exchange (9:04)
- 3. Importar una API en Anypoint Studio (7:33)
- 4. Importar una API en Anypoint Platform (11:32)
- Punto de Control 1
- 5. Crear Mule Application en Anypoint Platform (10:36)
- 6. Transformando datos en una Mule Application (17:44)
- Punto de Control 2
- 7. Crear una API Specification en Anypoint Platform (11:03)
- 8. Configurar métodos GET y POST de una API Specification (19:22)
- 9. Publicar una API en Anypoint Platform (13:32)
- Punto de Control 3
- 10. Crear una Mule Application en Anypoint Studio con MySQL (14:46)
- 11. Transformar de MySQL a JSON en Anypoint Studio(16:13)
- 12. Crear métodos GET ID y POST en Anypoint Studio (11:02)
- 13. Fusionar API Specification y Mule App en Anypoint Studio (15:30)
- 14. Insertar datos en MySQL con POST en Anypoint Studio (17:00)
- 15. Enrutar Flows entre Mule App y API Spec en Anypoint Studio (5:19)
- 16. Sincronizar con APISync y GIT (7:55)
- Punto de Control 4