OpenWebinars

Lenguajes de Programación

Qué es una API y cómo funciona

Las APIs son cada vez más importantes y más usadas en nuestro día a día, por eso vamos a contarte en este post qué son, cómo funcionan, sus tipos y usos.

Rodolfo Sáenz Escobar

Rodolfo Sáenz Escobar

Experto en Linux

Lectura 10 minutos

Publicado el 12 de agosto de 2022

Compartir

Introducción

Las Interfaces de Programación para Aplicaciones o Application Programming Interfaces en inglés, comúnmente conocidas como APIs son mecanismos que permiten que dos componentes de software puedan comunicarse entre sí usando un set de definiciones y protocolos debidamente establecidos. Por ejemplo, si usas la aplicación del banco donde tienes tu cuenta bancaria desde tu teléfono móvil y quieres hacer una consulta del saldo que tienes usando internet, esta aplicación te muestra los datos de cuenta bancaria, consultando los datos que se encuentran en el sistema del banco en una base de datos donde tienes tu dinero, a través de una API.

La interfaz podría ser interpretada como un contrato entre dos partes. Este contrato define cómo las dos partes, que en este caso son dos aplicaciones, tienen que comunicarse entre sí, usando peticiones y respuestas a estas peticiones.

La documentación de las APIs contiene información en como los desarrolladores de software tienen que estructurar esos pedidos y respuestas.

Cómo funciona una API

Las APIs trabajan bajo un esquema cliente-servidor. La aplicación que manda la petición se le llama “cliente” y a la aplicación que manda la respuesta se le llama “servidor”, así que en el ejemplo anterior la aplicación del banco que está en tu teléfono móvil es el cliente, y la base de datos de clientes del sistema de tu banco se le llama servidor.

Hay 4 diferentes modelos en las que las API pueden funcionar en este esquema dependiendo cuándo y por qué fueron creadas.

· APIs SOAP: Este modelo de API usa el protocolo SOAP (Simple Object Access Protocol) y en el mismo el cliente y el servidor intercambian mensajes usando el lenguaje XML (Extensible Markup Language). Este tipo de APIs es poco flexible y fueron las primeras en aparecer en los años 2000s.

· RPC APIs: Este modelo de API usa el protocolo RPC (Remote Procedure Call), y en el mismo el cliente completa una función o procedimiento en el server, de ahí su nombre, luegoy después el servidor envía los datos procesados de vuelta al cliente.

· Websocket APIs: En este tipo de modelo se usa el lenguaje JSON (JavaScript Object Notation) que es usado para pasar datos. JSON es un lenguaje fácil de leer y escribir para humanos y también fácil para procesar para las máquinas. Una API Websocket habilita la comunicación entre cliente y servidor. El servidor inclusive puede mandar mensajes de recordatorio de llamadas al cliente lo cual las hace muy eficientes.

· REST APIs: Este tipo de APIs son las más populares y flexibles que existen. El cliente envía peticiones al servidor como datos, entonces el servidor usa estos datos para arrancar funciones internas y retorna datos procesados de regreso al cliente. Las REST APIs usan varios formatos, pero predominantemente usan también JSON.

JSON y las REST APIs más de cerca

A continuación, vamos a examinar un poco más en detalle a JSON y a las REST APIs siendo estos los más populares en el mundo API.

La versatilidad de JSON

Para que te hagas una idea de lo fácil y práctico que es el lenguaje JSON vamos a ver un fragmento de un programa en el que se hace referencia al ejemplo anterior del usuario de banco por teléfono móvil que acceda a su banco:

"usuario":{

"nombre":"Luis Zepeda",

"direcc":"Calle Los Alcaldes",

"Tel":"894-534-563",

"email":"[<span class="underline">lzepeda\@gmail.com</span>](mailto:lzepeda@gmail.com)",

"cta\_banco":"2847474629"

}

Se puede apreciar en este fragmento de programa que los datos del usuario son guardados en pares key/value o clave/valor. En lado izquierdo vemos la clave “cta_banco”, que hace referencia a la palabra “Cuenta de Banco” y en el lado derecho vemos el valor “2847474629”. Las claves son nombres aleatorios que pueden ser creados por nosotros siempre y cuando respetemos la sintaxis del lenguaje, y hacen referencia a cada objeto solo cambiando los valores de cada usuario que acceda la base de datos del banco. Así cada usuario del banco tendrá un valor de cuenta diferente, pero sus propiedades de acuerdo a las claves serían las mismas, tendría un nombre, una dirección, un teléfono, un correo y una cuenta de banco.

JSON está hoy por hoy en todos lados, en aplicaciones modernas de web, teléfonos móviles, aplicaciones de IoT (Internet of Things), es sumamente fácil de leer, es liviano, y trabaja perfectamente con aplicaciones escritas en lenguaje JavaScript, ya que es directamente derivado de este lenguaje, además de ser comparativamente fácil obtener aplicaciones escritas en otros lenguajes para leer y ser generadas.

Esto significa que una API que retorna datos JSON puede ser accedida por una aplicación escrita en Python, Java, Ruby, PHP, JavaScript y otros. Esto hace la API amigable para desarrolladores de software, altamente escalable e ínter-plataforma.

Cómo surgen las REST APIs y quién las creó

En febrero del año 2000 Salesforce, una compañía de software que se dedica a hacer software de tipo CRM (Customer Relationship Management), un software orientado a ventas, servicio al cliente, mercadeo y otras ramas afines, sacó al internet la primera API. Pero ni esta API ni las que le seguirían a corto plazo, estaban supuestas a ser de dominio público, eran privadas, ya hablaremos un poco más adelante sobre otro tipo de clasificación de APIs respecto a su disponibilidad.

Ebay por ese entonces también sacó sus APIs ese mismo año, pero solo con la intención de usarlas internamente.

Ambas compañías hicieron sus APIs bajo el modelo SOAP, que ya vimos anteriormente, siendo las pioneras. Pero al ser estas de naturaleza privada y nadie más que esas dos compañías las podían usar, surgió una nueva iniciativa a través de un científico computacional llamado Roy T. Fielding.

Fielding introdujo lo que actualmente conocemos como APIs modernas, con su tesis “Estilos de Arquitectura y el Diseño de Arquitecturas de Software basados en Redes”. A partir de ese momento nació una nueva industria de colaboración en línea social y corporativa. Graduado de la Universidad de California, Irvine desarrolló después para su tesis doctoral lo que hoy se conoce como el modelo REST, que quiere decir Representational State Transfer (Transferencia de Estado Representacional).

El modelo REST provee una alternativa mucho más liviana al modelo SOAP, que muchos desarrolladores de software encontraron como difícil de usar e implementar. Con lo que empezaron a nacer APIs de dominio público apoyados por iniciativas de grandes empresas y desarrolladores alrededor del mundo.

REST hace mucho mejor el ancho de banda de internet, ya que es mucho más fácil en sintaxis que SOAP y es compatible con muchos formatos de datos, pero el más predominante por todas sus virtudes es JSON, convirtiéndose en el método de consumo de APIs más preferido en el mundo.

REST define un set de funciones sencillas pero poderosas para actuar sobre los datos retornados por las funciones descritas anteriormente como GET, PUT, DELETE, etc. Los clientes pueden consultar datos de los servidores y viceversa usando el internet eficientemente.

Imagen 0 en Qué es una API y cómo funciona

Tipos de APIs según su disponibilidad y complejidad

Anteriormente expusimos categorías de APIs basadas en su funcionamiento, ahora expondremos otro tipo de categorización de las APIs basado en su naturaleza de disponibilidad:

Existen 4 tipos de APIs categorizadas según su uso:

· Open APIs: También llamadas APIs públicas, son APIs públicamente disponibles para ser usadas por todo el mundo.

· Partner APIs o APIs para socios. Son diseñadas por empresas para ofrecer acceso a empresas o negocios socios para reservar o comprar artículos específicos solamente.

· Private APIs: Conocidas también como APIs internas. Este tipo de APIs no son para consumo público y solo son usadas para procesos internos de empresas u organizaciones.

· Composite APIs: Llamadas también APIs compuestas, combinan diversos tipos de datos y diferentes servicios de APIs, son muy complejas y esencialmente combinan múltiples tipos de APIs juntas.

Guía de una API

Una API, sea esta pública o interna, tiene (o debe de tener) su propia documentación o guía, como todo código. Si una API no tiene documentación es como si fuera un pedazo de código inútil y oscuro, ya que los desarrolladores de software no podrían trabajar con ella.

Las APIs bien estructuradas, con una buena documentación que explica cómo se debe usar e integrar de una manera sencilla y eficiente, hará que los desarrolladores de software quieran trabajar con ella y recomendarla a otros compañeros para que la usen. En el caso contrario, no pasará del intento y quedará en el olvido.

La guía de una API es como un manual de referencia de instrucciones e información en el que se incluyen funciones, clases, argumentos y tipos de retorno.

Una buena guía para una API exitosa debe contener elementos como una guía rápida, información de autenticación, explicaciones para cada petición hecha a la API, así como ejemplos para cada petición y respuestas con una descripción, muestras de código para lenguajes como Java, PHP, JavaScript, Python y otros, ejemplos de SDK (Software Development Kits) si los hay.

Un SDK es una colección de herramientas de desarrollo de software en un paquete de instalación. Los SDK facilitan la creación de aplicaciones si también incluyen compilador, depurador de errores su propio marco de referencia. Normalmente las APIs son diseñadas y hechas para una plataforma de hardware específica y una combinación de sistemas operativos.

La guía también puede ser estática e interactiva, esta última permite hacer pruebas y ver el retorno a ciertas peticiones y usualmente consisten de dos secciones, la sección descriptiva y la sección de máquina. La sección sescriptiva es puramente informativa y la sección de máquina, que tiene una consola para hacer peticiones (llamadas) y que contiene información técnica, es de interés para clientes y servidores cuando se entre en fase de pruebas con la API.

Ejemplos de APIs en el mundo real

He aquí algunos ejemplos de APIs que usan diferentes protocolos y especificaciones por todos nosotros virtualmente cada día.

Ejemplos de APIs públicas

· Ingresar en aplicaciones sin registrarse usando otros sitios

Muchas aplicaciones permiten que usuarios ingresen a ellas mediante sus cuentas de Google, Facebook u otras cuentas en sitios populares, sin embargo, eso no significa que estas aplicaciones vayan a tener acceso a nuestras redes sociales o servicios en línea. Lo que hacen es que la aplicación en cuestión hace una llamada a la API para chequear si el usuario de Facebook o Google está logueado, luego la API hace la confirmación y permite la autenticación en lugar de la aplicación.

· Bots de Redes Sociales

Si has usado Reddit o Twitter probablemente has visto algunos bots. Estos programas hacen uso de las Open APIs de sus respectivos websites para hacer varias tareas. Las Open APIs de Reddit o Twitter envían señales a los bots en respuesta a un evento, como, por ejemplo, un comentario con ciertas palabras usadas, el bot responde con la acción para la que fue programado a hacer, de esta manera los bots puede enviarte recordatorios o inclusive sugerirte alguna acción a seguir.

· Comercio online

Si has hecho compras fuera de Amazon en una tienda online y aparece un aviso para pagar con PayPal a la hora de pagar, la API que hace este aviso funciona de manera similar al ejemplo mencionado arriba. De la misma manera, el negocio online en el que compras no va a tener acceso a tu cuenta de PayPal, solo va a mandar la orden de compra a la API de PayPal y PayPal manejará el resto de la transacción.

Esto no lo verás en Amazon porque PayPal y Amazon son competidores indirectos, ya que Ebay, competidor directo de Amazon, está asociado con PayPal.

· Aplicaciones de clima

¿Alguna vez has consultado el clima de tu ciudad con una búsqueda en Google? Si lo has hecho, Google no te ofrece directamente la información del clima de tu ciudad, lo hace a través de un API de un servicio de clima, como, por ejemplo, AccuWeather. Simplemente es una llamada a un API y hace la respectiva petición.

Ejemplos de APIs privadas

· Servicios de streaming

Spotify, Netflix, HBO, Amazon, Disney+ y otros servicios de contenido de streaming de películas, series o documentales tienen que distribuir ese contenido a cada dispositivo desde el cual un usuario obtenga acceso a internet y quiera consultar su cuenta, como, por ejemplo, una computadora, un iPad, una Tableta, una TV Inteligente, teléfono móvil o cualquier otro dispositivo.

Estas empresas lo hacen a través de una API, asegurándose que su contenido sea compatible con cualquier dispositivo que ofrezca acceso a internet al usuario.

· Aplicaciones financieras

Finalmente, como último ejemplo, al que ya antes habíamos hecho mención, tenemos las aplicaciones de banca electrónica. Tu banco hace uso de un API interna para manejar todos los aspectos de tus finanzas, desde tus tarjetas de crédito, débito, hasta tus cuentas de ahorros, transferencias, disponibilidad de endeudamiento y otros tipos de ofrecimientos de servicios bancarios.

Compartir este post

También te puede interesar

Icono de la tecnología
Laboratorio

Gestión del diseño de APIs y OpenAPI

Intermedio
3 h. y 3 min.

Realizando este laboratorio podrás aprender aspectos importantes para la gestión de APIs como granularidad o versionado, que te...

Marco A. Pérez Feregrino
4.7
Icono de la tecnología
Laboratorio

Diseño de APIs

Intermedio
2 h. y 44 min.

Aprende con nosotros todo acerca del Diseño de APIs, desde el objetivo del API como producto, plasmarlo en...

Marco A. Pérez Feregrino
4.7