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