Introducción a las APIs: enfoque de Mulesfot

Artículo

Introducción a las APIs: enfoque de Mulesfot

Todos los días oímos que hay que evolucionar al mundo de las API, pero ¿qué es realmente una API? ¿Cómo hay que diseñarlas y qué ofrecen los fabricantes para manejarlas y gestionarlas?

Todos los días oímos que hay que evolucionar al mundo de las APIs, que debemos dejar atrás el SOA clásico, oímos ventajas de este modelo y de cómo los desarrolladores se pueden auto-proveer y reutilizar API existentes. También escuchamos hablar de cómo podemos exponer nuestro negocio a partners a través de API, etc. Pero ¿qué es realmente una API? ¿Cómo hay que diseñarlas y qué ofrecen los fabricantes para manejarlas y gestionarlas? Hacemos una introducción al mundo de las interfaces de programación de aplicaciones y cómo uno de los fabricantes de API Management más importantes da solución a este reto. 

¿Qué es una API?

Una API (application programming interface) es una interfaz que facilita el acceso a servicios o bases de datos, de modo que hacen posible la interconexión de módulos y aplicaciones, facilitando el acceso a sus backend y permitiendo así la reutilización de servicios.

A través de la programación, nos permite abrir datos y funcionalidades a otros desarrolladores, empresas o incluso departamentos de la misma empresa. De este modo se convierte en la nueva forma en que las organizaciones van a intercambiar datos, servicios y recursos tanto con socios como con el público en general.

¿Qué problemáticas resuelven y qué aspectos debemos tener en cuenta?

  • Conectividad: su utilización permite la conexión de componentes software de forma remota.
  • Independencia tecnológica: el uso de una determinada API no tiene que llevar asociada la utilización de una determinada tecnología (.NET, Java, …).
  • Funcional: las API generadas y publicadas tienen que resolver una necesidad y ofrecer una funcionalidad completa.
  • Seguridad: la publicación de determinadas funcionalidades a terceros, lleva consigo implícito este reto a resolver.
  • Escalabilidad: habilitar servicios para la utilización por terceros sistemas puede conllevar un crecimiento elevado del número de llamadas al sistema. El servicio expuesto vía API tiene que estar implementado utilizando soluciones escalables fácilmente.
  • Agilidad al cambio: al crecer el número potencial de usuarios del API también se aumenta el número de potenciales necesidades/mejoras sobre las mismas. La arquitectura creada tiene que facilitar la evolución de las API y funcionalidades, permitiendo una respuesta rápida que cumpla con las expectativas del elevado número de usuarios y permita responder con antelación con respecto a la competencia.
  • Documentación: el proceso de creación de API lleva asociado un proceso de documentación y publicación de las mismas. El objetivo es disponer de una plataforma, portal de API, en la cual los potenciales usuarios de las mismas pueden disponer de todo el detalle necesario para su uso.
  • Niveles de acceso: la utilización de API conlleva un nivel de servicio proporcionada por las mismas. Para poder garantizar este nivel de servicio se hace imprescindible un control del nivel de acceso a dichas API. Este control se puede utilizar a la hora de monetizar el servicio, permitiendo la creación de distintos niveles de acceso y por lo tanto distintos costes.

¿Cómo conseguimos tener controlados todos estos aspectos?

Podemos definir API Management como el proceso de publicar, promocionar y supervisar APIs en un entorno seguro y escalable. Además, el término incluye todos aquellos recursos enfocados a la creación, documentación y socialización. Este concepto es la clave del éxito de una plataforma de API ya que nos dará solución a las problemáticas que nos vamos a encontrar.

Deloitte

¿Cuál es el enfoque que aporta Mulesoft al mundo de las API?

Mulesoft tiene uno de los productos líderes del mercado, Anypoint Platform, que no sólo pretende ser una plataforma tecnológica de integración, sino que fomenta una metodología de gestión de API a través de ella que facilite la utilización de sus API y la reutilización de las mismas.

El enfoque que la herramienta ofrece, “API-led connectivity”, es una forma de conectar datos y aplicaciones a través de API reutilizables y funcionalmente completas. Estas API se desarrollan para jugar un rol específico convirtiendo datos en procesos y ofreciendo distintos métodos de integración.

Deloitte

La solución propuesta por Mulesoft incluye en un solo producto los tres pilares necesarios para el API Management:

  • API Gateway
  • API Manager
  • API Portal

Además, al incorporar su propio Runtime así como numerosos conectores a los sistemas más importantes del mercado (Salesforce, SAP, Siebel, etc.) incluye también las capacidades de un ESB. Además, cubre todo el ciclo de vida del software e incluye un enfoque de producto orientado a DevOps.

El enfoque “API Led Connectivity” se basa en generar assets reutilizables y sobre una arquitectura de tres capas, no sólo con componentes propios sino utilizando arquitecturas híbridas.

Deloitte

1. Experience API

Esta capa es la que los sistemas consumidores utilizan. Está orientada al consumidor de forma que le facilite y optimice la integración según sus necesidades. Además, se desarrollan pensando en la reutilización por parte de consumidores similares. Adicionalmente, el diseño escalable de esta capa permite incorporar nuevos consumidores sin impactar en los consumidores existentes y reutilizando la lógica implementada en las capas inferiores.

2. Process API

En esta capa intermedia se desarrollan APIs dedicadas a implementar la lógica de los procesos de negocio. Son reutilizables por todas las Experience APIs de la capa superior, y orquestan las invocaciones a las diferentes System APIs de la capa inferior. La incorporación de nuevos procesos de negocio a través de nuevas Process APIs no impacta a los componentes existentes y los nuevos componentes pueden reutilizar las System APIs existentes si fuese necesario. La comunicación entre este Process API y los System API se realiza a través de REST.

3. System API

Es la capa de servicios que proporcionará conectividad con los sistemas finales, orientada totalmente a las características del Backend, también llamada capa de microservicios. Son APIs dedicadas a ejecutar operaciones en los sistemas proveedores. Además, son reutilizables por todas las Process APIs y la necesidad de ejecutar nuevas operaciones en los sistemas existentes (o nuevos sistemas) no impacta en las operaciones existentes. Cada System API conecta con un sistema proveedor.

En el entorno actual en el que los canales de entrada no dejan de crecer y los sistemas core de las compañías se multiplican es necesario este tipo de organización de API para que nuestro ecosistema de API sea reutilizable, ágilmente modificable y duradero. Este enfoque permite que tengamos APIs que contienen toda la lógica de negocio, abstrayéndose tanto del consumidor, como del sistema del que obtiene la información. Además, los cambios en los sistemas legados o en los sistemas consumidores no afectan al proceso implementado en gran medida.

Luis Santos

Luis es senior manager del área de tecnología de Deloitte con más de 18 años de experiencia profesional en IT. Se incorporó a Deloitte en 2007 dentro del área de DxD. Su carrera siempre ha estado enfocada al desarrollo de aplicaciones de gestión, portales web e integración de sistemas realizados con tecnologías Java y .NET en entornos SOA. Los últimos años de su carrera se han enfocado al área de integración de sistemas y middleware, basadas en SOA, BPM y API Management, trabajando en distintos clientes utilizando soluciones de distintos fabricantes como TIBCO, IBM, Mulesoft y Redhat.

Did you find this useful?