Blog

¿Qué es y para qué sirve un API Manager?

En los últimos años se está produciendo una revolución en la provisión de servicios a través de internet. Las empresas cada vez tienen mayor necesidad de estar interconectadas y automatizar procesos que abarcan varias organizaciones. Si en las décadas anteriores las empresas se dedicaron a abrir canales web y móvil para los clientes, actualmente lo hacen para que aplicaciones de terceros accedan a su infraestructura. Las razones y beneficios son múltiples (ver Economía de APIs ). Esto ha llevado a un rápido crecimiento en el uso de API’s o servicios web. Si atendemos al gráfico elaborado por programmableweb.com comprobamos que el crecimiento es casi exponencial.

000_api_growth

Fuente: programmableweb.com

Este rápido crecimiento ha expuesto diversos problemas tanto para el proveedor como para el consumidor de los API’s. Problemas como la securización del API, la documentación del API para su integración por desarrolladores externos, el versionado del API permitiendo añadir mejoras al servicio sin producir una discontinuidad del servicio, la gestión del ciclo de desarrollo del API y su paso por distintos entornos así como la provisión de entornos sandbox para que los desarrolladores, prescriptores del servicio, puedan probar el servicio antes de pagar por el.

Distintos productos de API Management cubren distintas necesidades pero si tuviéramos que hacer una lista de las propiedades que nosotros buscamos en una de estas herramientas, incluiríamos las siguientes:

Packaging

Los APIs suelen ser servicios de pago y suelen atender distintos segmentos de cliente. Para ello,  queremos tener la posibilidad de empaquetar un mismo servicio de distintas maneras para distintos tipos de cliente.

Por ejemplo, si hemos construido un agregador financiero que nos permite acceder a los datos bancarios de un cliente bajo su consentimiento, podemos ofrecer distintos servicios basándonos en estos datos. Un servicio podría ofrecer la verificación de identidad a través de los datos del titular de las cuentas. Este servicio podría usarlo cualquier empresa que quisiera comprobar la identidad de un usuario web o móvil dentro de sus políticas KYC. El otro servicio podría ofrecer una rating crediticio en base a los ingresos y saldo medio en cuentas. El destinatario de este servicio serían empresas de préstamo que en base a este rating quieren decidir si prestan o no dinero a este cliente.

En definitiva, tenemos dos servicios que van destinados a clientes distintos y que tendrán políticas de precios diferentes. Los API Managers deben ser capaces de:

  • asociar políticas de precios distintas para diversos subconjuntos de un mismo API
  • asociar políticas de precios distintas para distintos volúmenes de uso de un API

Esta información se deberá mostrar de cara al consumidor del API en forma de distintos paquetes de servicios o distintos planes cada uno con una política de precios particular.

Analítica y Facturación

Si bien la emisión de facturas o el cobro del servicio no suele ser parte integrar de un API Manager, si que lo es la posibilidad de generar los informes para preparar estas facturas. Tanto para poder cobrar a tus clientes, como para entender cómo se están usando tus servicios, es vital que el API Manager ofrezca herramientas de análisis y visualización de las llamadas que se hacen a tus servicios.

Developer Portal

El principal prescriptor de un API es el desarrollador que lo va a integrar como parte de una solución. Queremos que los desarrolladores que van a prescribir nuestro servicio puedan familiarizarse con el mismo y evaluar si éste se adecua a sus necesidades.

Los API Manager suelen ofrecer facilidades a la hora de presentar a los una documentación del API atractiva y herramientas que les permiten probar el API desde la propia documentación contra un entorno sandbox.

Versionado

Nunca existe una única versión de un producto y mucho menos de un servicio web. La naturaleza de los servicios Web y APIs hace que estos estén en continua evolución adaptándose a las necesidades de los clientes. ¿Que pasa cuando ya tenemos clientes en nuestra plataforma y queremos introducir cambios?. En un momento dado, esta evolución puede llevarnos a una dicotomía:

  • Introducimos un cambio que «rompe» las soluciones que nuestros clientes han construido sobre nuestro API
  • Los cambios son siempre backward compatible.

La primera opción nos haría perder clientes y la segunda nos llevaría en el medio y largo plazo hacía un producto costoso de mantener y evolucionar.

La solución es trabajar con un sistema de versionado que nos permita mantener distintas versiones del producto (tanto la documentación, como los plane, como el servicio en sí mismo) dando servicio a nuestros clientes en paralelo. Es necesario, junto con el sistema de versionado, establecer una clara política de soporte y migración de versiones. De esta forma, nuestros clientes siempre sabrán cuando una versión dejará de tener soporte y podrán migrar paulatinamente y de forma ordenada sus soluciones a las versiones más actuales de nuestro producto. Claro que estas políticas quedan fuera del alcance de un API Manager ya que pertenecen al mundo humano.

Staging

El staging de un servicio entre entornos permite desplegar distintas versiones del producto (el API en si mismo, los planes, la documentación y todo lo que lo acompaña), o la misma versión, sobre distintos entornos de ejecución. Por un lado, esto nos permite disponer de un entorno de sandbox y un entorno de producción. Que es lo mínimo que vamos a necesitar. El primero para dar soporte a nuestros clientes durante la fase de integración y el segundo cuando nuestros clientes ya tengan su solución construida y en producción.

A parte, según versionemos el API necesitaremos nuevos entornos. Además, si un gran cliente tiene necesidades particulares, podremos crear entornos específicos para él.

Gestión de usuarios y seguridad

Por último, necesitamos un mecanismo para permitir que nuestros clientes contraten un plan, se les distribuyan usuarios y claves de acceso al portal y credenciales para el API. El API Manager se encargará de toda la gestión de usuarios y credenciales del API así como del proceso de on-boarding de clientes

Comenzamos con este artículo una serie de centrada en API Managers. En los próximos días analizaremos a través de tutoriales IBM API Connect.

000_api_connect_logo

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *