API son las siglas de application programming interface (interfaz de programación de aplicaciones). Una API es un conjunto de protocolos, definiciones y subrutinas cuya finalidad es la de permitir integrar un software o aplicación con otros, facilitando la comunicación entre ellas.
Su uso está bastante extendido hoy en día, tanto en aplicaciones web, como móviles o de escritorio.
Un escenario habitual para recurrir a API, es el de hacer uso de servicios externos en una aplicación. Por ejemplo, para conectar una aplicación con servicios que se encargan de la conversión de divisas actualizada en tiempo real, de obtener la predicción climatológica de los próximos días en un lugar determinado, etc.
Es habitual también desarrollar una API para un uso interno cuando se desea hacer una aplicación para diferentes plataformas. Un negocio o proyecto que tenga por ejemplo una aplicación web, una aplicación Android y otra para iOS, puede usar una API propia para gestionar la lógica del negocio.
Pongamos un ejemplo para verlo mejor. Supongamos una compañía de alquiler de coches. Podemos desarrollar una API que responda a tareas como consultar los coches disponibles para una fecha dada, confirmar una reserva, obtener las reservas realizadas por un cliente, cancelar una reserva, etc. Podemos entonces desarrollar aplicaciones para móviles o distintos sistemas, y haciendo uso de la API, estas aplicaciones a crear serían una mera interfaz en la que enviar información y recibir los datos de la API. La lógica del negocio se mantendría independiente en una aplicación que usa la API como vía de comunicación con el resto.
Ventajas de las API
Las API permiten, por un lado, mantener separada la lógica del negocio de la interfaz, manteniendo el control y la seguridad. Podremos aplicar parches, corregir bugs y realizar pequeñas mejoras en nuestros modelos, datos y procesos sin afectar al resto de aplicaciones que usen nuestra API.
Por otro lado permite ofrecer tus servicios a otras empresas y desarrolladores para que se integren o usen tu sistema, expandiendo el alcance de tu marca y pudiendo obtener nuevas vías de ingresos.
Además facilita el poder llevar tu aplicación a diferentes entornos y plataformas. Si se popularizase una nueva plataforma, tan sólo tendrías que desarrollar una interfaz nativa en esa plataforma que se comunique con tu API, donde reside el grueso de tu negocio.
Formatos y tipos de API
Para comunicarse con una API se usa normalmente el protocolo HTTP (al igual que cuando navegamos por un sitio web). Tanto los mensajes que enviamos para realizar peticiones, como las respuestas devueltas por la API, se realizan habitualmente en formato XML o JSON, formatos de texto pensados para el intercambio de datos.
En un principio, para estandarizar el desarrollo y uso de las API se ideó un protocolo denominado SOAP (Simple Object Access Protocol) que hacía uso de XML para el formato de los mensajes.
Posteriormente, en la década de los 2000 surgió REST (representational state transfer, o transferencia de estado representacional), un estilo de arquitectura para el desarrollo de API que usa el protocolo HTTP (SOAP es un protocolo en sí mismo), pudiéndose usar XML o JSON para el formato de los mensajes. Las API que se rigen por la arquitectura REST se denominan API RESTful.
La mayoría de las API que se desarrollan hoy en día son API RESTful, aunque sigue habiendo una gran base de API SOAP de sistemas que llevan muchos años en explotación.