Las siglas API corresponden al inglés «application programming interface«, que se traduce algo así como: «interfaz de programación de aplicaciones«. Este término se refiere al conjunto de estructuras que permiten que los componentes de un software se comuniquen con otros y/o entre sí.
Para entender a fácilmente que son las APIs, imaginemos que necesitamos un sistema de mapas para un aplicación que estamos desarrollando para un cliente en particular. Para poder mapear una ciudad como CDMX o la ZMG de Guadalajara, necesitarías una montaña de dinero, meses desarrollo y logística entre tantos otros recursos que resultan irreales para una aplicación practica. Afortunadamente, Google ya ha hecho esta labor por nosotros con su app Maps, por lo que para nosotros resulta muy útil utilizar la información que ellos ya desarrollaron y basta con integrar ligeras códigos y adaptar nuestro desarrollo a ciertos parámetros y listo. Nos ahorramos millones en desarrollo.
¿Como funciona?
Existen varios conceptos técnicos para tener en cuenta al utilizar y desarrollar APIs, los cuales explicare muy brevemente a continuación:
Interfaz:
La interfaz es una capa de abstracción (o nivel de abstracción), básicamente es una forma de ocultar los detalles de implementación de ciertas funcionalidades del programa. Puede usarse para definir sistemas asociados que implican una separación entre procesos.
Una buena interfaz permite la conexión funcional entre dos sistemas, programas, dispositivos o componentes de cualquier tipo, proporciona una comunicación de distintos niveles, permitiendo el intercambio de información. Por ejemplo, un formulario de registro; el usuario ingresa sus datos y credenciales y el sistema valida si son aceptables o no; el usuario no necesita saber cómo funciona la validación, solo que funcione correctamente.

Arquitectura de Software:
La arquitectura de software básicamente es la forma en la que diseñado un sistema. Hoy el día el desarrollo de una aplicación requiere mucho más que saber problema resuelve y en qué lenguaje de programación se codificara. Es necesario planear bien el conjunto de elementos que serán necesarios (frameworks, apis, bases de datos, etc.), conocer bien el proceso del negocio al que va dirigido el software, sus alcances e incluso la posibilidad de expandirlo eventualmente, entre muchos otros.
Servicio Web:
Es un sistema en la nube que permite la comunicación entre equipos que estén dentro de la red. Estos sistemas deben de seguir ciertos estándares, la utilización del protocolo HTTP, mismo lenguaje de programación, etc. El servicio web es la base de las APIs remotas, esto es de la comunicación remota entre programas.
REST:
Una API de REST (Representational State Transfer), o API de RESTful, es una interfaz de programación de aplicaciones que se ajusta a los límites de la arquitectura REST y permite la interacción con los servicios web.
Esta arquitectura implica que pueden guardarse datos en la CACHE, que el estado no se envía en las peticiones o bien que el programador puede definir que datos permites que otra aplicación acceda, ingrese o manipule de mi información. Básicamente se podría decir que es el control de permisos de los clientes sobre tu app.

XML:
Por sus siglas en inglés de eXtensible Markup Language en español algo como: ‘Lenguaje de Marcado Extensible’ o ‘Lenguaje de Marcas Extensible’. Es un metalenguaje utilizado para almacenar datos en forma legible. XML es el formato para enviar datos que se ha utilizado prácticamente desde siempre.
JSON:
JSON (acrónimo de JavaScript Object Notation, ‘notación de objeto de JavaScript‘) es un formato de texto sencillo para el intercambio de datos. Se trata de un subconjunto de la notación literal de objetos de JavaScript, aunque, debido a su amplia adopción como alternativa a XML, se considera un formato independiente del lenguaje.
Hoy en día el formato más usado es JSON, es prácticamente el estándar de la industria pues muy sencillo de entender, manipular e implementar.
TOKEN:
Las APIs, pueden ser publicas o privadas; Google Maps por ejemplo es una API publica y prácticamente todos pueden acceder a ella. Sin embargo las APIs privadas, requieren de credenciales para poder acceder a ellas. Cuando un usuario se autentica por primera vez, el servidor te generará un token que es un objeto con toda la información de tus llaves de acceso. El formato mas común hoy en día para tokens en APIs REST es JWT (JSON Web Token).

Tipos de API:
Las API pueden ser locales o remotas y su funcionamiento varia mucho en las funciones y aplicación de las mismas.
Por ejemplo en una API local, digamos que estas desarrollando una app en iOS, tu programa necesita acceder a la cámara y después esa fotografía procesarla. Basta con acceder a la API de Swift que controla la cámara y después la información de la fotografía pasarla a tu código.
En una API Remota, es un poco diferente. Normalmente (aunque no es una norma) se utilizan servicios web para la comunicación, si utilizan servicios web normalmente hay dos arquitecturas SOAP (Simple Object Access Protocol) que hoy en día es muy poco usada y REST (Representational State Transfer) que es actualmente la arquitectura más usada.
Los usos prácticos de las APIs hoy en día son una cantidad enorme, actualmente prácticamente todos los desarrollos dependen de algún tipo de API para su correcto funcionamiento, pues gracias a su facilidad de uso e implementación resultan en herramientas indispensables para el programador moderno.
En NBX hemos desarrollado nuestras propias APIs para varios de nuestros sistemas que ofrecemos, para SMS o Integra CRM por ejemplo. Si necesitas más información al respecto, por favor ponte en contacto con nosotros, tenemos una solución inteligente para tu negocio.

Programador y diseñador web especializado en marketing digital, redes sociales y nuevas tecnologías.