Todos los días escuchamos que debemos evolucionar al mundo de las APIs, que debemos dejar atrás el clásico SOA, escuchamos ventajas de este modelo y cómo los desarrolladores pueden autoproveerse y reutilizar las APIs existentes. También oímos hablar de cómo podemos exponer nuestro negocio a los socios a través de las API, etc. Pero, ¿qué es realmente una API? ¿Cómo 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 más importantes fabricantes de API Management resuelve este reto.

Deloitte

¿Qué es una API?

Una API (interfaz de programación de aplicaciones) es una interfaz que facilita el acceso a servicios o bases de datos, de manera que permiten la interconexión de módulos y aplicaciones, facilitando el acceso a su 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 intercambiarán datos, servicios y recursos tanto con los socios como con el público en general.

Deloitte

¿Qué problemas resuelven y qué aspectos debemos tener en cuenta?

Conectividad: su uso permite la conexión de componentes de software de forma remota.
Independencia tecnológica: el uso de una determinada API no tiene por qué estar asociado al uso de una determinada tecnología (.NET, Java, …).

Funcional: Las APIs generadas y publicadas tienen que resolver una necesidad y ofrecer una funcionalidad completa.

Seguridad: la publicación de ciertas funcionalidades a terceros, implica este reto a resolver.

Escalabilidad: la habilitación de servicios para su uso por parte de sistemas de terceros puede suponer un elevado crecimiento del número de llamadas al sistema. El servicio expuesto a través de la API tiene que ser implementado utilizando soluciones fácilmente escalables.

Agilidad al cambio: al aumentar el número potencial de usuarios de la API también aumenta el número de posibles necesidades/mejoras sobre ellos. La arquitectura creada tiene que facilitar la evolución de las APIs y las funcionalidades, permitiendo una respuesta rápida que satisfaga las expectativas del elevado número de usuarios y permita responder con antelación respecto a la competencia.

Documentación: el proceso de creación de la API está asociado a un proceso de documentación y publicación. El objetivo es disponer de una plataforma, portal de APIs, en la que los potenciales usuarios de las mismas puedan disponer de todos los detalles necesarios para su uso.

Niveles de acceso: el uso de las APIs implica un nivel de servicio prestado por las mismas. Para garantizar este nivel de servicio, es imprescindible controlar el nivel de acceso a estas APIs. Este control puede ser utilizado a la hora de monetizar el servicio, permitiendo la creación de diferentes niveles de acceso y por tanto diferentes costes.

¿Cómo conseguimos controlar todos estos aspectos?

Podemos definir la Gestión de APIs como el proceso de publicación, promoción y monitorización de 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 APIs ya que nos dará solución a los problemas que nos vamos a encontrar.

¿Cuál es el enfoque de Mulesoft en el mundo de las APIs?

Mulesoft cuenta con uno de los productos líderes en el mercado, Anypoint Platform, que no sólo pretende ser una plataforma tecnológica de integración, sino que además promueve a través de ella una metodología de gestión de APIs que facilita el uso de sus APIs y su reutilización .

El enfoque que ofrece la herramienta, «API-led connectivity», es una forma de conectar datos y aplicaciones a través de APIs reutilizables y funcionalmente completas. Estas API se desarrollan para desempeñar un papel específico convirtiendo los datos en procesos y ofreciendo diferentes métodos de integración.

La solución propuesta por Mulesoft incluye en un solo producto los tres pilares necesarios para la gestión de las APIs:

  • API Gateway
  • Gestor de APIs
  • Portal de APIs

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

Deloitte

El enfoque «API Led Connectivity» se basa en la generación de activos reutilizables y en una arquitectura de tres capas, no sólo con componentes propios sino utilizando arquitecturas híbridas.

1. Experiencia API

Esta capa es la que utilizan los sistemas de consumo. Está orientada al consumidor de forma que facilita y optimiza la integración según sus necesidades. Además, se desarrolla pensando en la reutilización por parte de consumidores similares. Además, el diseño escalable de esta capa permite incorporar nuevos consumidores sin afectar a los existentes y reutilizar la lógica implementada en las capas inferiores.

2. Proceso API

Las APIs dedicadas a implementar la lógica de los procesos de negocio se desarrollan en esta capa intermedia. Son reutilizables por todas las APIs de Experiencia de la capa superior, y orquestan las llamadas a las diferentes APIs de Sistema de la capa inferior. La incorporación de nuevos procesos de negocio a través de nuevas APIs de Proceso no afecta a los componentes existentes y los nuevos componentes pueden reutilizar las APIs de Sistema existentes si es necesario. La comunicación entre esta API de Proceso y las APIs de Sistema se realiza a través de REST.

3. Sistema API

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

En el entorno actual en el que los canales de entrada no paran de crecer y los sistemas centrales de las empresas se multiplican, este tipo de organización de las APIs es necesaria para que nuestro ecosistema de APIs sea reutilizable, ágilmente modificable y duradero. Este enfoque nos permite disponer de APIs que contienen toda la lógica de negocio, abstrayendo tanto al consumidor como al sistema del que se obtiene la información. Además, los cambios en los sistemas heredados o en los sistemas consumidores no afectan en gran medida al proceso implementado.