¿Qué es una interfaz de programación de aplicaciones (API)?

Una interfaz de programación de aplicaciones, o API, es un conjunto de definiciones, reglas y protocolos que permiten la comunicación entre dos entidades: los usuarios (ya sean personas o programas informáticos) y la información (recursos de datos que las aplicaciones web y en línea ponen a su disposición).

Hoy en día, las API constituyen la estructura básica de las aplicaciones modernas, mejoran la experiencia de usuario y potencian los modelos de negocio. En ocasiones, una API puede incluso ser el propio modelo de negocio.

¿Cómo funcionan las API?

Las API son la «cara pública» de las aplicaciones: muestran las funciones que realizan y la información que pueden proporcionar, además de definir el formato adecuado de las solicitudes. Cuando un desarrollador crea y expone la API de una aplicación, permite que otras aplicaciones se comuniquen con ella.

En muchos casos, las API ahorran un tiempo muy valioso a los desarrolladores, ya que permiten acceder fácilmente a funciones de uso habitual. En lugar de duplicar la funcionalidad de una aplicación existente, los desarrolladores pueden integrarla en sus propias aplicaciones mediante llamadas a la API de la aplicación existente.

diagrama

La forma en que se diseña, implementa y funciona cada API depende de su estilo arquitectónico o protocolo.

Tipos de arquitecturas y protocolos de API

Una arquitectura de API, o estilo arquitectónico, hace referencia al diseño de alto nivel de una API. Esto engloba cómo se estructura y organiza la API, así como su formato de solicitud/respuesta. Un protocolo de API también especifica el formato y, además, describe los mensajes exactos.

Entre las arquitecturas y los protocolos de API más comunes se incluyen:

  • REST – También conocido como RESTful, este estilo arquitectónico se basa en los principios de la transferencia de estado representacional. Utiliza métodos HTTP (como GET, POST, PUT y DELETE) e información abstraída (en forma de recursos y modelos de recursos) para crear estructuras escalables, flexibles y tecnológicamente independientes. En la actualidad, REST sigue siendo la arquitectura de API más popular.
  • GraphQL – Un lenguaje de consulta de código abierto desarrollado por Meta (anteriormente Facebook). Las arquitecturas GraphQL permiten obtener datos de múltiples fuentes mediante una única llamada a la API. Dado que los clientes solo solicitan los datos necesarios, las API GraphQL suelen ser más eficientes (aunque ofrecen menos posibilidades de almacenamiento en caché) que las API REST.
  • SOAP – Este enfoque arquitectónico utiliza el protocolo simple de acceso a objetos (SOAP). Los mensajes SOAP suelen tener formato XML, lo que los hace más voluminosos que los de REST o GraphQL. A diferencia de las API REST, las API SOAP cuentan con directrices de implementación estrictas que definen la estructura del protocolo de la API.
  • WebSocket – Este protocolo de API es bidireccional, lo que significa que el cliente y el servidor pueden enviar y recibir mensajes simultáneamente. Además, el servidor puede enviar un mensaje que no sea una respuesta a una solicitud del cliente, sino que se active, por ejemplo, por un evento en el servidor. En cambio, las API REST siguen un patrón estricto de solicitud-respuesta.
  • RPC – Con una llamada a procedimiento remoto, el desarrollador puede usar el mismo código para invocar una función que se ejecuta en un espacio de direcciones diferente (normalmente, en un servidor remoto) que para una función local, sin tener que especificar los detalles de la interacción remota. Dado que se pueden utilizar varios lenguajes, este protocolo es flexible y se utiliza habitualmente en la comunicación cliente-servidor. Un ejemplo de RPC es gRPC (llamada a procedimiento remoto de Google).

¿Cómo se utilizan las API hoy en día?

Las API son una parte fundamental del software moderno. Hoy en día, las organizaciones y las empresas crean o utilizan muchos tipos diferentes de API en función de sus necesidades.

Los cuatro tipos de API más habituales en las organizaciones actuales son las API públicas, las API privadas, las API para socios y las API de terceros.

API públicas

Las API públicas son accesibles para usuarios externos a su empresa (ya sea de pago o de forma gratuita) y le permiten establecer alianzas con desarrolladores externos y ampliar todo su ecosistema empresarial.

Dado que los desarrolladores externos pueden utilizar las API públicas para crear nuevos productos, estas contribuyen a impulsar la innovación y son una herramienta importante para establecer nuevas alianzas.

API privadas

Solo los equipos internos de su empresa pueden acceder a las API privadas. Estas permiten aprovechar los datos y fomentar la colaboración interna, o bien pueden servir de soporte de forma invisible a las aplicaciones públicas de su organización (por ejemplo, su sitio web).

Dado que las API privadas solo están disponibles para usuarios internos, las organizaciones pueden desarrollarlas teniendo en cuenta la optimización. Las API privadas también ofrecen una mayor capacidad de composición para las aplicaciones modernas, lo que permite a las empresas adaptarse a las necesidades actuales. Los desarrolladores pueden integrar fácilmente API privadas al crear microservicios, lo que reduce la duplicación de trabajo entre equipos.

API para socios

Las API para socios se utilizan para integrarse directamente con socios comerciales (por ejemplo, cuando una aerolínea colabora con una cadena hotelera y puedes reservar al mismo tiempo el vuelo y el alojamiento). Las API para socios no están disponibles públicamente; solo pueden acceder a ellas determinados desarrolladores que cumplan los requisitos de autenticación (AuthN) y autorización (AuthZ) de ambas empresas.

La interoperabilidad refuerza las relaciones mediante las API de socios, ya que elimina los silos y permite que distintas organizaciones se comuniquen entre sí.

API de terceros

Su organización utiliza API de terceros para acceder a datos o funcionalidades que no están disponibles en sus aplicaciones y servicios. Estas API se ejecutan en el servidor del tercero y suelen proporcionar un servicio ampliamente demandado (por ejemplo, la API de procesamiento de pagos de Stripe que utilizan muchos sitios web de comercio electrónico). Dependiendo de la API, su organización puede utilizarlas de forma gratuita o previo pago.

Dado que las API de terceros ya han sido creadas por otro desarrollador u organización, una de sus ventajas evidentes es el ahorro de costes. Además, las API de terceros son un recurso clave para que las organizaciones desarrollen aplicaciones con mayor rapidez, ya que los desarrolladores pueden utilizar una funcionalidad de inmediato en lugar de programarla ellos mismos.

¿Qué lenguajes de programación se utilizan para crear API?

Se puede utilizar prácticamente cualquier lenguaje de programación moderno para programar una API. A la hora de programar una API, muchos desarrolladores optan por utilizar un framework. Los frameworks proporcionan componentes básicos, como bibliotecas de código y otras utilidades necesarias, que permiten crear aplicaciones con ese lenguaje de forma más rápida y sencilla.

Cada lenguaje de programación suele contar con uno o varios frameworks populares entre los desarrolladores. La tabla muestra varias opciones de frameworks (muchos de ellos de código abierto).

Idiomas

Marcos de trabajo

Java

Primavera

JavaScript, Node.js

Angular, Express.js, React, Vue

PHP

Laravel, Slim, Symfony

Python

Django, Flask

Rust

Rocket, Yew, Actix-Web

Ruby

Rails

La elección del lenguaje y el framework suele depender de las necesidades del proyecto o de las preferencias personales del desarrollador.

Ejemplos de API

Hoy en día, las organizaciones necesitan una estrategia de API moderna que esté en consonancia con sus objetivos. Una estrategia de API establece un plan sobre cómo una organización diseñará, desarrollará, gestionará, gobernará y protegerá sus API.

Según Las cinco principales lecciones de Gartner sobre las API para responsables de ingeniería de software, existen cinco prácticas recomendadas para garantizar que su estrategia de API sea sólida:

  • No permita que la gobernanza de las API genere cuellos de botella. La gobernanza de las API debe equilibrarse con la agilidad de los desarrolladores para seguir impulsando la innovación.
  • Trata las API como productos, aunque no tengas previsto monetizarlas. Asegúrate de que cada API tenga un propósito y un público claros y acordes con los objetivos empresariales.
  • Descubre tus API antes de que lo hagan los hackers. Dar prioridad a la capacidad de detección y a la supervisión periódica ayuda a prevenir brechas de seguridad.
  • Gestione el ciclo de vida de las API. Una gestión integral del ciclo de vida de las API garantiza que sigan funcionando con la seguridad adecuada.
  • Elija las tecnologías de API que mejor se adapten a sus necesidades. Lo que funciona para una organización puede no ser exactamente lo más adecuado para la suya, por lo que es importante analizar en detalle sus necesidades específicas de API, tanto actuales como futuras.

Independientemente del tipo de arquitectura de API que elija o del tipo de API que esté programando, es fundamental tener en cuenta la seguridad de las API desde el principio, y no como algo secundario. Para obtener más información sobre cómo mantener sus API seguras desde el primer momento y combatir problemas habituales como la proliferación de API, consulte Seguridad de las API: prácticas recomendadas para proteger las API.

Y no todas las métricas son iguales. Obtén más información en Qué 12 métricas supervisar para lograr una estrategia de API exitosa.

¿Qué es la conectividad de API?

Aunque las API surgieron como una herramienta para desarrolladores, han evolucionado hasta convertirse en activos empresariales estratégicos que aumentan los ingresos y favorecen la agilidad de las empresas. La conectividad mediante API consiste en utilizar API modulares y reutilizables para conectar datos y aplicaciones en entornos nativos de la nube, con el objetivo de resolver los retos relacionados con la visibilidad, la seguridad y la gobernanza.