viernes, 10 de julio de 2026

¿Cómo funcionan los flujos en MuleSoft?

En la anterior entrega vimos que MuleSoft es una herramienta que nos permite conectar aplicaciones, datos y APIs de manera centralizada.

Ahora veremos cómo funciona los flujos de MuleSoft.

Flujo de una aplicación Spring Boot con Mulesoft

Digamos que se tiene una API con Spring Boot y se quiere integrar mediante MuleSoft.

┌─────────────────┐
 Aplicación      
 Consumidora     
 (Web/Móvil/ERP) 
└────────┬────────┘
          HTTPS/REST
         
┌─────────────────┐
 MuleSoft API    
 Experience API  
└────────┬────────┘
         
          Validación
          Seguridad (OAuth/JWT)
          Rate Limit
         
┌─────────────────┐
 Mule Flow       
 Orquestación    
└────────┬────────┘
         
         ├─────────────┐
                      
                      
┌────────────┐   ┌─────────────┐
 Transform      Enriquecer  
 DataWeave      Datos       
└─────┬──────┘   └──────┬──────┘
                       
      └────────┬────────┘
               
     ┌─────────────────┐
      System API      
      Spring Boot API 
     └───────┬─────────┘
              REST/JSON
             
     ┌─────────────────┐
      Spring Boot     
      Business Logic  
     └───────┬─────────┘
             
             
     ┌─────────────────┐
      Base de Datos   
      MySQL/Postgres  
     └─────────────────┘
	 
	 

Esto nos muestra el flujo de la aplicación con Mulesoft.

Flujo detallado (Spring Boot)

Todo inicia desde la petición del cliente hasta obtener la respuesta.

Cliente
   
   
HTTP Listener
   
   
Validar JWT/OAuth
   
   
Logger Request
   
   
Transform Message
(DataWeave)
   
   
HTTP Request
(Spring Boot API)
   
   
Spring Boot
   
   ├── Consulta DB
   ├── Procesa lógica
   └── Devuelve JSON
   
   
Transform Response
(DataWeave)
   
   
Logger Response
   
   
Retorna al Cliente

Teniendo una API Spring Boot:

GET /api/clientes/123

Respuesta:

{
  "id": 123,
  "nombre": "Thomas Muller",
  "email": "thomas.muller@empresa.com"
}

Exponiendo una API corporativa con MuleSoft:

GET /clientes/123

Respuesta:

{
  "id": 123,
  "nombre": "Thomas Muller",
  "email": "thomas.muller@empresa.com"
}

Arquitectura API-Led Connectivity

MuleSoft recomienda tres capas:

                 CLIENTES
                     
                     
        ┌─────────────────────────┐
         Experience API          
         Web / Mobile / Partner  
        └──────────┬──────────────┘
                   
                   
        ┌─────────────────────────┐
         Process API             
         Orquestación negocio    
        └──────────┬──────────────┘
                   
         ┌─────────┴─────────┐
                            
┌────────────────┐  ┌────────────────┐
 System API        System API     
 Spring Boot       SAP / Oracle   
└────────┬───────┘  └────────────────┘
         
         
   ┌──────────┐
    Database 
   └──────────┘

Responsabilidad de cada API

  • Experience API: adapta la información para cada canal.
  • Process API: aplica reglas de negocio y orquesta sistemas.
  • System API: conecta directamente con Spring Boot, SAP, Salesforce, bases de datos, etc.

Ejemplo de Mule Flow XML

Observemos un ejemplo de flujos (flow):

<flow name="getCustomerFlow">

    <http:listener
        path="/clientes/{id}"
        config-ref="HTTP_Listener"/>

    <logger
        level="INFO"
        message="Consultando cliente"/>

    <http:request
        method="GET"
        url="http://springboot:8080/api/clientes/#[attributes.uriParams.id]" />

    <ee:transform>
        <ee:message>
            <ee:set-payload>
<![CDATA[
%dw 2.0
output application/json
---
{
  customerId: payload.id,
  fullName: payload.nombre,
  contact: {
      email: payload.email
  }
}
]]>
            </ee:set-payload>
        </ee:message>
    </ee:transform>

</flow>

A simple vista es algo complejo estar trabajando con flujos, pero una vez aue se entiende la lógica ya no es tan complicado. Como se dijo arriba, todo inicia desde la petición del cliente hasta obtener una respuesta. Esa respuesta puede ser válida o indicar un error si la aplicación no puede atender correctamente la petición.

Beneficios de usar MuleSoft delante de Spring Boot:

  • Seguridad centralizada (OAuth, JWT, Client ID).
  • Monitoreo en Anypoint Platform.
  • Transformación de formatos con DataWeave.
  • Orquestación entre múltiples APIs.
  • Reutilización mediante API-Led Connectivity.
  • Desacoplamiento entre consumidores y backend Spring Boot.

Proyecto en AnyPoint Studio MuleSoft

AnyPoint Studio MuleSoft es un entorno de desarrollo integrado (IDE) basado en Eclipse. Permite a los desarrolladores diseñar, construir y probar APIs e integraciones empresariales mediante una interfaz visual de arrastrar y soltar, simplificando la conexión entre diferentes aplicaciones y servicios.

Un proyecto luciría de esta forma:

MuleSoft es un mundo por aprender; nos permite conectar sistemas, diseñar, crear, probar y gestionar APIs empresariales; además de facilita la automatización de procesos, denominados flujos de trabajo; también permite visualizar toda la infomación involucrada.

Continuaremos con este tema en próximas entregas.

Enlaces:

https://www.mulesoft.com/
https://es.wikipedia.org/wiki/MuleSoft
https://www.seidor.com/es-mx/blog/salesforce-mulesoft-que-es
https://rootstack.com/es/blog/mulesoft-todo-lo-que-tienes-que-saber


No hay comentarios:

Publicar un comentario

¿Cómo funcionan los flujos en MuleSoft?

En la anterior entrega vimos que MuleSoft es una herramienta que nos permite conectar aplicaciones, datos y APIs de manera centralizada....

Etiquetas

Archivo del blog