DEV Community

ledacoding
ledacoding

Posted on

Entiende qué es una API en un minuto

¿Recuerdas cuando le pedías apuntes a tu amiga antes del examen?

Algo así es una API.

Me explico.

Una API es fundamentalmente un mecanismo de comunicación. Dos programas que están corriendo en diferentes equipos necesitan intercambiar información. Mediante un protocolo uno le solicita al otro por algo y el segundo responde su solicitud.

Muchas páginas tienen APIs corriendo en su software que están libres para que otros equipos lo consuman.

Por ejemplo: aquí tenemos el API de Spotify.

API de Spotify

En este caso Spotify nos está diciendo que podemos acceder a información de su sistema como la letra de las canciones y su posición en la plataforma. Si logramos conectar nuestro software con el suyo, accederemos a millones de datos que ellos comparten.

Para hacerlo no tenemos que darle a ningún botón de descarga. De nuevo, la conexión que tendremos será directa entre su software y el nuestro, descargar archivos requeriría trabajar localmente y probablemente nos lleve más tiempo.

Entonces ¿Cómo lo hacemos?

Simplemente seguiremos un protocolo.

Un protocolo es una manera acordada de hacer las cosas. El protocolo da la receta para establecer la comunicación y si la seguimos adecuadamente accederemos a lo que queremos.

Spotify tiene su API para consumo a través de la web. El protocolo en que se basa una API en la web es HTTP, la cual establece comunicación entre un cliente y un servidor. El cliente hace una petición al servidor y el servidor da una respuesta.

Lo que requiere la petición son 4 cosas:

  • URL: una dirección a la que acceder
  • Method: una instrucción de como manejar la solicitud
  • Headers: metadatos de la petición
  • Body: el contenido de la petición

La respuesta requiere de 3 cosas:

  • Code status: Un código informando el resultado de la solicitud
  • Headers: información adicional sobre la petición
  • Body: el contenido de la petición

Notemos que la petición y la respuesta tienen una estructura muy similar; la dirección y el método son solo necesarias para la petición y el código de estado solo necesario para la respuesta.

Lo bueno del protocolo HTTP es que puede ser usado con diferentes lenguajes. Así que a pesar de que la sintaxis varíe, podemos acceder al contenido con el mismo proceso.

Aquí tenemos algunos ejemplos de como manejar la petición.

Con JavaScript:
Petición con JavaScript

Con Phyton:
Petición con Python

Con Kotlin:
Petición con Kotlin

En todas estas peticiones tenemos la URL en donde está el recurso:

https://spotify23.p.rapidapi.com/search/?q=%3CREQUIRED%3E&type=multi&offset=0&limit=10&numberOfTopResults=5
Enter fullscreen mode Exit fullscreen mode

El method para saber que hacer con la petición:

GET
Enter fullscreen mode Exit fullscreen mode

En este caso GET indica que queremos recibir información.

Los headers que nos cuentan información relevante.

'X-RapidAPI-Host': 'spotify23.p.rapidapi.com'
'X-RapidAPI-Key': 'SIGN-UP-FOR-KEY'
Enter fullscreen mode Exit fullscreen mode

Vemos que necesitamos registrarnos para obtener una llave.

Y no tenemos body. Como queremos recibir y no compartir, no hay ningún contenido asociado.

Tan pronto hagamos esa solicitud el servidor procesará la solicitud y nos dará una respuesta. Ahí vemos la respuesta que nos da una solicitud con JavaScript.

Body:
Body de solicitud

Headers:
Headers de solicitud

En el caso de las solicitudes a un API, no siempre obtendremos un código de estado, en este caso obtenemos una respuesta "success". Suficiente para saber que obtuvimos una respuesta satisfactoria a nuestra petición.

Voy a hacer una petición en JavaScript para buscar los albumes que Spotify tiene disponibles de The Beatles.

Búsqueda de álbumes de "beatles"

La búsqueda la especifico en mi URL, indicando la palabra de búsqueda "?q=beatles", comentando que deseo los albumes "type=albums" y que limite la busqueda a 10 caracteres "limit=10".

Utilizo como method GET y me aseguro que los headers tengan la clave que me solicitan. Como no voy a enviar contenido mi body está vacío.

Perfecto. Ahora enviamos y esperamos la respuesta.

El servidor me respondió. Me comunica que hay 1000 resultados para la busqueda y me comparte los 10 items que le pedí.

Body:
Body de respuesta a búsqueda de álbumes de "beatles"

Veamos que hay en los items:
Respuesta de 10 items de álbumes

El contenido del primer item es:
Contenido del primer item

Lo tenemos. El primer resultado es "Beatles For Sale (Remastered)".

También nos comparte unos datos sobre la respuesta.

Headers:
Headers de respuesta a solicitud de álbumes

Así de sencillo. Ahora ya entiendes que es una API.

Recapitulando: Las API son un mecanismo de comunicación entre dos softwares, que permiten que un cliente haga una petición a un servidor. Este proceso sigue un protocolo, que para APIs web es HTTP. El protocolo establece que habrá una petición y una respuesta. La petición necesita URL, method, headers, body. La respuesta tiene status code, headers y body. Si hacemos la petición adecuadamente obtendremos exactamente lo que necesitamos.

Con esto millones de datos están a nuestro alcance.

Notas adicionales:
Este ejercicio utilizó el API de Spotify a través de RapidAPI. Esta página es muy intuitiva y muestra ejemplos de petición y respuesta. Puedes probarla directamente aqui: Rapid API

Top comments (0)