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

API es el acrónimo en inglés de "interfaz de programación de aplicaciones", un software intermediario que permite que las aplicaciones se comuniquen entre sí. Cada vez que se usa una aplicación como Facebook, se envía un mensaje instantáneo o se mira el pronóstico del tiempo en el teléfono, se utiliza una API.

¿Qué sería un ejemplo de una API?

Cuando se utiliza una aplicación en un teléfono móvil, la aplicación se conecta a Internet y envía datos a un servidor. El servidor, a continuación, recupera los datos, los interpreta, realiza las acciones necesarias y los envía de vuelta al teléfono móvil. La aplicación interpreta entonces los datos y presenta la información deseada de manera legible. Todo ello sucede a través de una API.

Para explicar mejor este proceso, veamos un ejemplo de la vida cotidiana.

Imagina que estás en un restaurante y tienes todo un menú para elegir. La cocina es la parte del "sistema" que prepara tu pedido. El elemento que falta es el enlace esencial que comunica tu pedido a la cocina y te lo sirve luego en la mesa. Es aquí donde entra en juego el camarero, que vendría a ser la API. El camarero es el mensajero (la API) que comunica a la cocina (el sistema) lo que debe hacer. Después, el camarero te entrega la respuesta; en este caso, la comida.

Veamos ahora un ejemplo de API en la vida real. Es posible que conozcas el proceso de búsqueda de vuelos online. Como sucede en el restaurante, dispones de una amplia variedad de opciones entre las que elegir, como diferentes ciudades, fechas, etc. Imaginemos que estás reservando un vuelo en el sitio web de una aerolínea. Eliges la ciudad de salida y la fecha, la ciudad de vuelta y la fecha, la clase y otras variables. Para reservar el vuelo, interactúas con el sitio web de la aerolínea para acceder a su base de datos y consultar si hay asientos disponibles en esas fechas y cuál sería el precio.

Sin embargo, ¿qué pasa si no vamos al sitio web de la aerolínea, que es un canal que tiene acceso directo a la información? ¿O qué sucede cuando recurrimos a una agencia de viajes digital, como Kayak o Expedia, que agrega información procedente de diversas bases de datos de aerolíneas?

La agencia de viajes, en este caso, es quien interactúa con la API de la aerolínea. La API es la interfaz a la que, como a un servicial camarero, la agencia de viajes puede recurrir para obtener la información de asientos, opciones de equipaje, etc. almacenada en la base de datos de la aerolínea. A continuación, la API transmite la respuesta de la aerolínea a la solicitud y entrega la información a la agencia de viajes digital, que ahora puede facilitar la información más actualizada y relevante.

Lo que proporciona la API es una capa de seguridad

De esta manera, los datos del usuario nunca se exponen íntegramente al servidor, de la misma manera que el servidor nunca se expone íntegramente al punto de acceso. Lo que ocurre es que cada parte implicada se comunica mediante pequeños paquetes de datos, compartiendo solo lo estrictamente necesario, como sucede al pedir comida. El usuario comunica al restaurante lo que le gustaría comer, el restaurante indica lo que necesita a cambio y, al final, se entrega la comida.

Las API son ahora tan valiosas que constituyen una gran parte de los ingresos de las empresas. Grandes empresas como Google, eBay, Salesforce.com, Amazon y Expedia son tan solo algunas de las organizaciones que obtienen beneficios de las API. Este mercado se conoce como la "economía de las API".

La API moderna

Tradicionalmente, las API se han descrito como cualquier interfaz de conectividad genérica a una aplicación. Más recientemente, no obstante, la API moderna ha desarrollado algunas características que la hacen extraordinariamente útil y valiosa:

  • Las API modernas siguen estándares (normalmente HTTP y REST) que resultan sencillos para los desarrolladores, fácilmente accesibles y muy bien conocidos.
  • Se conciben más como productos que como código. Su diseño está orientado al consumo por parte de un público concreto (p. ej., desarrolladores para móviles); además, existe mucha documentación al respecto, así como diferentes versiones que responden a determinadas expectativas de los usuarios en cuanto a su mantenimiento y ciclo de vida.
  • Dado este mayor nivel de estandarización, presentan una disciplina mucho más sólida en lo que respecta a la seguridad y la gobernanza. Asimismo, la capacidad de supervisión y gestión mejora el rendimiento y la escala.
  • Como cualquier otro producto de software, la API moderna tiene su propio ciclo de vida de desarrollo de software (SDLC) para el diseño, las pruebas, el desarrollo, la gestión y la creación de nuevas versiones.  Asimismo, las API modernas están bien documentadas para su consumo y la creación de nuevas versiones.