
Siete cosas que deberías saber sobre el buen gobierno de una API
Cada vez más y más en los departamentos de sistemas, y no sólo en los de desarrollo, hay una preocupación generalizada y casi obsesiva de “apificar” gran parte de los servicios que prestan a terceros, ya sea a clientes, socios o empresas colaboradoras.
En realidad esta tendencia hace que muchos de los implicados en el proceso, se preocupen por mantener a salvo de ojos curiosos y manos despistadas, la información que publican a través de las APIs y los sistemas que son accesibles desde los mismos.
¿Cuáles son las buenas prácticas a tener en cuenta para gestionar una API?
Hace días me preguntaba, cuáles serían las principales indicadores a tener en cuenta para una correcta gestión de una API.
A parte de la visibilidad de los proyectos en los que me encuentro involucrado en diferente y múltiples tipos de clientes, es cierto que cada vez más muchas compañías ya sea de base tecnológica o no, están viendo en las APIs una oportunidad de automatizar sus negocios, ofrecer mejores servicios e información a sus clientes, o inclusive construir desde las APIs las funcionalidades que luego serán explotadas por una aplicación o la interfaz gráfica de su servicio.
Pero, ¿cuál es el estado del arte de las APIs en 2019?
Como en casi cualquier campo, hoy en día hay algún estudio o informe que te sirva para contrastar el estado actual y adopción de una determinada tecnología, sólo hay que saber buscar y encontrar algún fabricante que este liderando la adopción del uso de dicha tecnología en cuestión.
En concreto y para el tema que nos concierte, como se usan las APIs hoy en día. Hace unas semanas encontré un informe elaborado por Smartbear, donde en base a una encuesta realizada a un resumen detallado de todos los aspectos que has de tener en cuenta a la hora de gestionar y gobernar una API.
Siete cuestiones a tener en cuenta en el ciclo de vida de tu API
Las organizaciones están desarrollando APIs tanto internas como públicas
Todos hemos oído hablar en los últimos años de la economía de las APIs y como estos interfaces de programación iban a ser los responsables de la gestión y gobiernos de internet, el foco de este mercado está casi y exclusivamente orientado al consumo y desarrollo de APIs públicas. Sin embargo, lo más sorprendente es que el estudio de Smartbear destaca que sólo un pequeño porcentaje de organizaciones están desarrollando APIs públicas solamente.
El 76% de las organizaciones están desarrollando tanto APIs internas y de cara al público, el 21% están desarrollando APIs para uso interno solamente, y sólo el 3% de los encuestados están desarrollando sólo APIs públicas.
Principales motores para el desarrollo de una API
Si nos fijamos en la distribución de las respuestas realizadas, los tres factores principales para implementar una API, de acuerdo a la mayoría de encuestados son:
- facilitar el trabajo entre los sistemas internos, herramientas y equipos
- reducir tiempo de desarrollo
- ampliar la funcionalidad en un producto o servicio
La sencillez como premisa de trabajo
Como ya dijo el gran Albert Einstein, «Si tu intención es describir la verdad hazlo con sencillez, y la elegancia déjasela al sastre», y en este sentido coincido cien por cien con el señor Einstein, aquí la cuestión es que para llegar a hacer que algo sea simple has de tener primero el conocimiento y experiencia suficiente para evitar añadir artefactos a la esencia de las cosas.
Y así en esta forma y aplicado a la creación de interfaces de programación, creo que el problema radica en esta misma premisa, la madurez del estado del arte y experiencia alrededor de este tipo de proyectos. Según las respuestas de la encuesta los equipos de producto que desarrollan las API están usando un promedio de cinco diferentes herramientas para desarrollar APIs de alta calidad.
Las herramientas utilizadas en el ciclo de vida del desarrollo de una API han aumentado en número con respecto a la edición anterior, y entre ellas se incluyen:
- Documentación de API
- Realización de pruebas funcionales
- Herramientas para CI/CD
- Control de fuente
- Pruebas unitarias

La creciente complejidad del ecosistema ha llevado a los compradores de este tipo de productos a un mayor enfoque en la usabilidad y facilidad de implementación. Antes que el precio o las características de las diferentes herramientas, los equipos priman la sencillez en la implementación y adopción por parte de sus equipos. Estas herramientas deben encajar a la perfección en los flujos de trabajo existentes y debería apoyar la reutilización de activos. La realidad el mercado hace que las organizaciones ya no pueden permitirse invertir en herramientas que necesiten de un proceso largo de despliegue o requieran gran cantidad de equipos para cambiar sus procesos.
La adopción de la especificación OpenAPI (OEA) sigue aumentando para los nuevas APIs
Hace unos años el proyecto ‘Swagger’ fue donado a la comunidad y renombra do por la Fundación Linux como OpenAPI. en 2015. La evolución y adopción de este estándar de facto ha sido muy rápida en los últimos años, desde un 25% de los encuestados por parte de Smartbear en 2015 hasta un 70% de la última encuesta publicada este mismo año.
Con aproximaciones muy diferentes en cuanto a la estrategia de desarrollo de la API, tal y como se puede ver en la siguiente gráfica extraída del informe.

A mayor inversión en documentación mejor experiencia del desarrollador
La documentación siempre ha sido una parte importante en relación acómo las organizaciones mejoran la usabilidad y aumentan adopción de sus productos. Al mismo tiempo, las organizaciones que dan prioridad a la documentación y proporcionar una experiencia documental excepcional han sido la excepción a la regla, haciendo que aquellos que documentaron bien sus servicios tuvieran una ventaja competitiva frente al resto, por el rápido uso y extensión en cuanto al consumo de los mismo por parte de sus clientes.
Parece que una situación similar está surgiendo en el nicho de las APIs. Según recoge la encuesta realizada por Smartbear, mientras que el 67% de los encuestados dicen que sí tienen una documentación formal de la API, sólo el 37% ven la documentación como una prioridad absoluta para su organización.
¿Tu organización dispone de un proceso formal de documentación de la API?
Según se desprende de la siguiente imagen, la falta de recursos, tiempo y herramientas de soporte al desarrollo son los mayores obstáculos para implementar un proceso de documentación de API exitoso.

El desarrollo de un API está en la agenda de casi todas las grandes organizaciones
Las APIs han jugado un papel importante en la evolución de los principales proveedores pertenecientes a la economía de las plataformas, permitiendo una integración sencilla y ordenada con servicios propios y de terceros.
Encontramos que el 91% de los participantes en la encuesta de Smartbear tiene ya en uso, o planea tener, un proceso formal de pruebas que realizaran en el corto plazo. La mitad del total de participantes en la encuesta confirmaron que las pruebas son una de sus prioridades de cara al desarrollo de las APIs en su organización. El enfoque de dichas pruebas es considerado un paso crítico en el ciclo de vida de una API y ha impulsado la adopción generalizada de herramientas, para los test de pruebas y garantizar el rendimiento de la API.

Monitorizar, la vía de resolver problemas de rendimiento
En teminos generales los ususarios de API tienen grandes expectativas en cuanto a la calidad y el rendimiento esperado de la misma. Donde un 57% de los usuarios esperan que los proveedores de una API resuelvan los problemas asociados al uso de esta en menos de un día y al menos el 40% espera que el problema se resuelva en un plazo menor a 12 horas. Cuando se mira desde el otro lado, los proveedores de API esperan resolver los problemas de rendimiento en las siguientes 24 horas, con el 63% de los proveedores fijando este rango como el estándar de servicio.

Según los encuestados, uno de los principales obstáculos para resolver el rendimiento de una API está en determinar la causa raíz del problema (60%), seguido de aislar la API como causa del problema (46%), y la tercera de ellas está en la involucración de la persona correcta para resolverlo (31%).

Microservicios como catalizadores de la adopción de APIs
Las nuevas arquitecturas de servicios, basadas en el concepto de cloud native, se apoyan principalmente en una arquitectura de microservicios que permite la entrega continua y el despliegue de grandes y complejas aplicaciones.
Este tipo de proyectos también permite a una organización evolucionar de forma más ágil su base o stack tecnológico, escalar más fácilmente y son más perdurables en el tiempo. Por otro lado ll crecimiento de los microservicios hace esperar un impulso exponencial en el uso y adopción de las APIs.
Casi tres cuartas partes de los encuestados creen que la adopción de las arquitecturas basadas en microservicios impulsará el mayor crecimiento de la adopción de nuevas APIs. Y para muestra un botón, tal y como se recoge en la encuesta, los micreoservicios lideraran el uso y crecimiento de la economía de las plataformas.

Mientras que en el otro lado de la moneda, la falta de recursos especialidades y tiempo para dedicar a este tipo de proyectos, es el principal lastre a la hora de implementar nuevos servicios basados en contenedores.

La estandarización como caballo de batalla de los desarrolladores
Según se recoge a lo largo del informe de Smartbear, a medida que las organizaciones expanden las funcionalidades de una API, se hace evidente la necesidad de establecer estándares sobre cómo se desarrollan y mantienen las mismas dentro de una organización. Esto es especialmente crítico con la aparición de nuevos formatos de arquitectura de software, como los microservicios, en los que las organizaciones pueden mantener cientos o incluso miles de API diferentes dentro de su arquitectura de servicios.
Al menos esta fue el principal reto tecnológico que identificaron los encuestados, seguido de la gestión de versiones y la reutilización de componentes, todo el detalle lo podéis encontrar en el siguiente gráfico.

Extra bonus
Pero si la curiosidad te pica, a continuación te dejo un pequeño bonus sobre que tecnologías son las más extendidas y utilizadas en este tipo de proyectos, por si estuvieses planteándote empezar a “apificar” algún servicio de tu empresa.
Principales herramientas usadas para la gestión del cambio

Principales plataformas de desarrollo utilizadas

Programas de integración continua más usados

Espero que este post te haya resultado útil y lo puedas usar como punto de partida en el próximo reto de “apificación” al que te enfrentes.