Qué es una API
Aunque comúnmente se suelen definir como un mecanismo de comunicación entre distintos programas, webs y aplicaciones, las entrañas de estas ventanas tecnológicas están hechas de código en los que los desarrolladores plasman una serie de reglas y especificaciones para que dos softwares puedan entenderse. Según el tipo de normas que incorpore, una API puede servir para que una aplicación interactúe con un sistema operativo (como las WinAPI), con una base de datos (DBMS) o con protocolos de comunicaciones.
Entre otros muchos gigantes, Twitter, Facebook o Amazon ofrecen sus interfaces de programación de aplicaciones en formato REST, y gracias a estas interfaces, los desarrolladores de una web o aplicación pueden utilizar datos o funciones creadas por otra plataforma mediante peticiones concretas e interpretar las respuestas, sin necesidad de tener que programarlas de cero, ni de que quien les presta sus herramientas tenga que dar detalles sobre ellas (aunque sí ponen restricciones a su uso). De ahí que, en términos informáticos, se las considere una capa o nivel de abstracción, una forma de ocultar cómo se ejecutan realmente las operaciones.
Tipos de APIs
APIs de servicios web: son las interfaces de desarrollo de aplicaciones que permiten el intercambio de información entre un servicio web (software que da acceso a un servicio concreto a través de una URL) y una aplicación. Normalmente ese intercambio se produce a través de peticiones HTTP o HTTPS. En la petición de la aplicación y respuesta, también en HTTP del servicio web, se contiene información de todo tipo tanto en los metadatos de la cabecera como en los del mensaje, normalmente en dos tipos de formatos muy usados: XML o JSON.
Hay cuatro tipos de API de servicios web habituales entre los desarrolladores:
- SOAP (Simple Object Access Protocol), un protocolo estándar de intercambio de información y datos en XML entre dos objetos;
- XML-RPC, un protocolo de llamada a procedimiento remoto que usa XML como formato de datos y llamadas HTTP como sistema de comunicación;
- JSON-RPC, mismo protocolo pero en formato JSON;
- REST (Representational State Transfer), arquitectura de software para sistemas hipermedia en la World Wide Web; una API REST usa el protocolo HTTP.
APIs basadas en bibliotecas: este tipo de APIs son las que permiten que una aplicación importe una biblioteca de otro software para hacer el intercambio de información. Hoy en día gran parte de las bibliotecas que dan acceso a productos y servicios están diseñadas en JavaScript. Las APIs en JavaScript suelen ser un ejemplo ilustrativo de APIs basadas en bibliotecas, por ejemplo las que se utilizan dentro del mercado de la cartografía web (servicios como Google Maps, Leaflet, ArcGIS o MapBox).
APIs basadas en clases: este tipo de interfaces de desarrollo de aplicaciones permite la conexión con los datos en torno a las clases, como es habitual en programación orientada a objetos con Java. La API de Java usa clases abstractas para la creación de aplicaciones igual que cualquier programa desarrollado en este lenguaje. Esas clases proporcionan todo lo necesario para realizar todo tipo de funciones dentro de esas aplicaciones. La interfaz de desarrollo de Java se organiza en paquetes y cada uno de esos paquetes contiene a su vez un conjunto de clases relacionadas entre sí.
APIs de funciones en sistemas operativos: como es obvio, los programas de software están continuamente interactuando con los sistemas operativos. La realidad es que, en muchos casos, la forma en la que lo hacen es a través de APIs. Sistemas operativos como Windows disponen de APIs que permiten esa comunicación entre programas y el OS.
Usos de las API para tu negocio
- El éxito de una empresa está fuera: las APIs nos pueden servir para llegar a personas con mucho talento, que pueden enriquecer el producto o servicios. Mejorando e incluso solucionando problemas no conocidos gracias a la experiencia de estos profesionales. Y gracias a esta, también pueden descubrirnos ciertas oportunidades de negocio a partir de lo ya creado.
- Innovación: las empresas punteras en innovación depositan gran parte de su músculo creativo en una o varias APIs. Como pueden ser: Google, Facebook, Twitter, Stripe, Amazon…. Da igual que sean dentro del mercado publicitario, tecnológico, bancario… Las APIs son el elemento clave en cualquier proceso innovador.
- Automatización de procesos: dentro de los equipos DevOps, se tiende a la optimización de procesos mediante la automatización, ya que esto se traduce en ahorro de costes, en esfuerzo y tiempo. Tanto es así que existen nombres técnicos para esa tarea: Business Process Automation (BPA) y Business Process Integration (BPI). Y da lugar a lo que se conoce como API Management, que afecta a campos empresariales como seguridad, analítica, desarrollo de productos y servicios, datos, flujos de trabajo…