Las interfaces de programación de aplicaciones, o API, están de moda.

Aunque las API no son algo nuevo, fenómenos recientes como la aceleración de la transformación digital durante la COVID-19, la mejora de las integraciones de software y los esfuerzos por migrar las aplicaciones heredadas a nuevas plataformas en la nube han dado lugar a una continua proliferación de API que afecta a la gestión, la seguridad e incluso a las decisiones arquitectónicas que toman las organizaciones para prosperar en la economía digital moderna.
Las API, en esencia, pueden representar el auge de las máquinas. Aunque, por suerte, los humanos aún controlan su creación, gestión y seguridad (al menos por ahora).

Fundamentalmente, en el «lenguaje de las API» (por así decirlo), el consumidor suele enviar consultas o solicitudes al productor a través de interfaces unificadas compuestas por diversos estándares, esquemas y especificaciones.
Por ejemplo, el Servicio Meteorológico Nacional (el productor) contiene datos meteorológicos diarios. La aplicación del tiempo de tu teléfono (el consumidor) llama a este sistema o, más concretamente, lo consulta a través de la API REST de WeatherKit y, a continuación, muestra los datos mediante la interfaz de usuario de la aplicación. Aunque este es un ejemplo sencillo de una aplicación popular utilizada por millones de usuarios, cabe destacar que la comunicación entre máquinas representa la mayor parte del tráfico de las experiencias digitales modernas y funciona gracias a las API.

Las API ofrecen una serie de ventajas tecnológicas que se traducen en valor empresarial:
Beneficio tecnológico | Valor empresarial |
Abstrae la implementación subyacente de una aplicación web. | Las organizaciones pueden implementar rápidamente aplicaciones móviles y arquitecturas basadas en microservicios. |
Especifica los tipos para que los desarrolladores puedan implementar consumidores de API mediante herramientas. | Los líderes pueden optimizar los procesos de desarrollo para agilizar la comercialización. |
Definir la semántica y el comportamiento para modelar un intercambio de información coherente y predecible. | Los socios pueden desarrollar y monetizar integraciones de terceros. |
En lo que respecta a la implementación de las API, hay que tener en cuenta una serie de aspectos. En concreto, el modelado, el versionado y las pruebas de contratos, que ayudan a desacoplar las dependencias y garantizar la interoperabilidad durante el diseño, el desarrollo y el mantenimiento.
Consideración | Descripción | Beneficio |
Modelado | La semántica o el comportamiento para representar y estructurar el intercambio de información. | Gestión optimizada de arquitecturas distribuidas. |
Control de versiones | Estrategias de gobernanza para la publicación y el mantenimiento durante todo el ciclo de vida de la API. | Máxima facilidad de uso y compatibilidad con versiones anteriores. |
Pruebas de contratos | Interacción definida y respuestas esperadas entre el consumidor y el productor. | Interacciones deterministas con integraciones empresariales de terceros. |
No hay una forma correcta o incorrecta de crear, gestionar y proteger una API. De hecho, cuando las API empezaron a proliferar, fue necesario estandarizar su formato y estructura para poder utilizarlas a gran escala. Así surgieron la Iniciativa OpenAPI y la consiguiente Especificación OpenAPI (OAS). Swagger fue la implementación de referencia original de la Especificación OpenAPI, y la mayoría de las herramientas han acabado adoptando OpenAPI, que aún conserva su desparpajo (¡JA!).
De hecho, una API puede construirse utilizando diversos estándares, esquemas y especificaciones. Por ejemplo, una presentación RESTful, un servicio gRPC y conexiones a un esquema GraphQL.
Implementación

Descripción general
La transferencia de estado representacional (REST) proporciona un modelo arquitectónico ligero para describir interfaces unificadas, que se aplica habitualmente utilizando HTTP como protocolo de transporte subyacente.
REST es, con diferencia, la implementación más extendida de las arquitecturas basadas en API.
Beneficios
- REST tiene unas reglas muy básicas, una barrera de entrada baja y un modelo de dominio sólido, por lo que su implementación resulta relativamente sencilla.
- Al tratarse de un sistema por capas, se abstrae la complejidad de los sistemas que hay detrás de la interfaz REST. Por ejemplo, el consumidor no es consciente de que está interactuando con un sistema de base de datos situado detrás de un servicio web.
- REST ofrece compatibilidad flexible con distintos tipos de contenido (incluidos JSON y YAML).
Cuándo usarlo
- Cuando la especificación OpenAPI sea suficiente para compartir la forma y la estructura de las API con los consumidores.
- Cuando el almacenamiento en caché deba determinarse dinámicamente en función de las cabeceras HTTP, ya que las solicitudes del productor al consumidor no mantienen estado de forma predeterminada.
- Cuando se amplía el modelo de recursos de una única API proporcionada por el productor o se ofrecen varias API en la misma URL base mediante puertas de enlace de API.

GraphQL es un lenguaje de código abierto para consultar y manipular datos mediante API, así como un entorno de ejecución para procesar dichas consultas con datos existentes (desarrollado por Facebook y actualmente integrado en la Linux Foundation).
- Proporciona un lenguaje de consulta para realizar consultas en múltiples fuentes.
- Permite a los clientes solicitar exactamente los campos necesarios, incluidos aquellos que abarcan varias API, lo que reduce el tiempo de carga inicial.
- El lenguaje de esquemas especifica los tipos de cada API y cómo se combinan las API, lo que permite ofrecer una única versión para todas ellas y simplifica la gestión de versiones.
- Como tecnología complementaria superpuesta a los sistemas heredados existentes para abstraer su complejidad.
- Cuando un consumidor de API necesita acceder, filtrar y realizar consultas de manera uniforme en una amplia variedad de servicios interconectados.
- Con dispositivos móviles, que están limitados por pantallas más pequeñas y la disponibilidad de la red.

gRPC es un framework moderno, de código abierto y alto rendimiento para llamadas a procedimientos remotos (RPC), bajo la tutela de la Linux Foundation.
- Alto rendimiento y fiabilidad gracias al uso de HTTP/2, búferes de protocolo ligeros, cargas útiles serializadas e implementaciones con estado.
- Compatibilidad modular con el equilibrio de carga, el seguimiento, las comprobaciones de estado y la autenticación.
- Alta interoperabilidad de funciones de interfaz y mensajes, con un amplio soporte de herramientas para todos los lenguajes.
- Para el último tramo de la computación distribuida, conectando dispositivos, aplicaciones móviles y navegadores con microservicios de backend, así como para aplicaciones multiplataforma que permiten la interacción entre dispositivos móviles, equipos de escritorio y dispositivos IoT.
- Para el tráfico entre contenedores («este-oeste»).
- Con interfaces externas («norte-sur») que requieren streaming, y para aplicaciones de streaming como chats, finanzas y noticias.
Tras esta introducción a los fundamentos de las API, en las próximas publicaciones veremos cómo crear, gestionar y proteger una arquitectura de API, antes de ponerlo todo en práctica migrando una aplicación heredada a una nueva plataforma en la nube.

¿Quieres tomar la delantera? Descarga hoy mismo el eBook:
Domina la arquitectura de API | eBook de O'Reilly
Sobre el autor

Artículos relacionados del blog

Cree servicios públicos seguros, resilientes y preparados para la IA con F5 y AWS
Descubre cómo las organizaciones del sector público pueden modernizar de forma segura sus aplicaciones y soluciones de IA, al tiempo que gestionan los sistemas heredados, el cumplimiento normativo y el riesgo operativo.
Protección de los sistemas de IA: por qué la seguridad debe avanzar al ritmo de la innovación
Desde acelerar avances revolucionarios en medicina y educación hasta transformar la vida cotidiana, la IA está cambiando nuestra forma de vivir y trabajar. Pero también ofrece grandes oportunidades a los ciberdelincuentes.
Avanzar hacia la optimización digital tras la transformación
Descubre estrategias de optimización digital para garantizar políticas de seguridad coherentes, impulsar la madurez de la transformación digital y superar los retos de la transformación.
Proyecto de código abierto destacado: mayor observabilidad con F5 Cloud Logger iApp
En el punto de mira del código abierto: cómo aumentar la observabilidad. Lee el blog de F5 para descubrir cómo exportar fácilmente la telemetría de BIG-IP a plataformas modernas de análisis en la nube.
El estado de la entrega de aplicaciones en 2018: la transformación digital impulsa la automatización y la multinube pese a las preocupaciones de seguridad
Descubre las principales conclusiones del cuarto informe anual de F5 sobre el estado de la entrega de aplicaciones.
Estado de la entrega de aplicaciones en 2017: automatización, API y DevOps
Descubre el informe sobre el estado de la entrega de aplicaciones de 2017. Lee el blog retrospectivo de F5 sobre los inicios del auge de las redes declarativas y los flujos de DevOps.