¿Qué son las APIs y cómo se comen?

Dentro del mundo digital, particularmente en el ámbito del desarrollo de aplicaciones, escuchamos constantemente el término “API”. Por ejemplo: 

“Necesitamos que nuestra app busque habitaciones en los hoteles boutique de Bora Bora, y que además de los vuelos que estarán disponibles, también nos muestre qué constelaciones serán visibles durante las fechas de la reservación. Lo pueden solucionar con una API, ¿verdad?”

Y sí, posiblemente exista una API de la NASA u otra agencia espacial que nos pueda ayudar a encontrar qué constelaciones serán visibles en determinadas fechas y coordenadas.

Entonces, ¿qué rayos es una API? Técnicamente, es el acrónimo en inglés de “interfaz de programación de aplicaciones”. Pero eso tampoco aclara nuestras dudas. 

En términos más fáciles de entender, podríamos decir que una API es un puente entre distintos componentes de software que a su vez pueden estar desarrollados en lenguajes de programación diferentes. Lo que nos permite ahorrar tiempo, dinero y la reinvención de la rueda en cada aplicación que desarrollemos.

Ya que entendimos un poco mejor el concepto, podemos comenzar con las distintas clasificaciones de APIs que existen.

Podemos clasificarlas según sus políticas de uso:

  • APIs públicas: También conocidas como APIs abiertas, están disponibles al público en general y contienen pocas e incluso nulas restricciones. Dentro de esta clasificación encontramos por ejemplo las APIs públicas de Marvel (https://developer.marvel.com/) y Pokémon (https://pokeapi.co/), ideales para aquellos desarrolladores que quieren practicar de una forma divertida; si eres un entusiasta del clima y los fenómenos naturales está la API de OpenWeather (https://openweathermap.org/api) o si eres un desarrollador frontend y necesitas información ficticia para probar tu aplicación está JSON placeholder (https://jsonplaceholder.typicode.com/)
  • APIs privadas: Generalmente utilizadas para el uso de aplicaciones internas o privadas de una empresa. Cuentan con protocolos de seguridad avanzados, obviamente. Dentro de esta categoría podríamos clasificar a las APIs que se desarrollan con la finalidad de ser consumidas dentro de una empresa que necesita acceder a su base de datos mediante diversos dispositivos, plataformas y sistemas operativos (iOS, Android o navegadores web). Por ejemplo: los desarrolladores backend construyen una API que será consumida por los desarrolladores frontend encargados de la plataforma web y por los desarrolladores mobile encargados del desarrollo en Android o iOS.

Otra clasificación muy común es de acuerdo a sus casos de uso:

  • APIs de datos: son aquellas que proporcionan acceso a bases de datos y sus procesos, mejor conocidos como proveedores SaaS (Software as a Service o Software como Servicio) y que por lo general cumplen con las funciones de un CRUD (Create, Read, Update, Delete) para sus procesos.
  • APIs de sistemas operativos: son aquellas que nos permiten interactuar con el kernel de nuestro sistema operativo (Windows, macOS, Linux) con la finalidad de utilizar sus recursos y servicios.
  • APIs remotas: básicamente son todas aquellas que acceden a recursos que se encuentran fuera del dispositivo que los solicita, todo esto mediante el uso de protocolos de red.
  • APIs web: podría decirse que es la combinación entre las APIs de datos y las APIs remotas, ya que hacen uso de la web y su arquitectura para aprovechar los recursos que ofrecen.

Por último, pero no menos importante, las APIs se clasifican con base en el enfoque de transmisión de datos que utilizan a través de la web. Dentro de esta clasificación se encuentran las APIs SOAP y las APIs REST, que son posiblemente las dos arquitecturas más usadas:

  • APIs SOAP: Es el acrónimo en inglés de Protocolo Simple de Acceso a Objetos, regido por el Consorcio World Wide Web (W3C), y se caracteriza por contener reglas complejas y robustas, que si bien cumplen con altos estándares de seguridad, en ocasiones el tiempo de respuesta de la información suele ser más lento. Una solicitud API SOAP se puede realizar a través de protocolos de la capa de aplicación (HTTP, SMTP, TCP, entre otros), sin embargo la respuesta debe ser un documento XML (Lenguaje de Marcado Extensible).
  • APIs REST: Es el acrónimo en inglés de Transferencia de Estado Representacional, que a diferencia de SOAP, más que ser un protocolo es una arquitectura de acceso e intercambio de datos a través de los servicios web. Sus principales ventajas se encuentran la opción de enviar información en distintos formatos, aunque habitualmente se usa JSON (Notación de Objetos de JavaScript); su rendimiento es mejor debido a su ligereza y la posibilidad de que sus respuestas sean almacenadas en caché las hace ideales para que sean consumidas por aplicaciones móviles.

Una vez que ya conocemos en términos generales los tipos y características de las APIs, podemos concluir que su uso e implementación dependerá en gran medida del modelo de negocio de la aplicación que necesitemos desarrollar.

¿Necesitas emitir CFDIs utilizando la información que ya tienes en tu CRM? Integra una API de un servicio especializado en facturación.

¿Necesitas que tu plataforma de control de inventario esté enlazada con tu plataforma de logística? Utiliza la API del servicio de logística para la comunicación con tu plataforma.

¿Necesitas que tu tienda en línea reciba pagos de distintas pasarelas de pago? Puedes conectar tu tienda con las APIs que ya existen de las diversas pasarelas de pago.

¿Necesitas una API? Acércate a dinkbit y juntos crearemos algo increíble.

También podría interesarte:

Gerardo Aguilar
Gerardo Aguilar

Gerardo

Backend Developer

Ingeniero en Sistemas Computacionales enfocado en el desarrollo de aplicaciones web. Melómano de raíces profundamente rockeras. Apasionado de los automóviles enfriados por aire. Entusiasta de las hamburguesas, las enchiladas suizas y la cerveza artesanal. Del Guadalajara toda la vida.

__

"Seamos realistas, pidamos lo imposible"

- Hebert Marcuse