Entiendo como funciona el Internet. Parte APIs.

Algunas veces tenemos un sistema queremos que se comunique con otros sistemas.


Imagina la siguiente situación:

Estás en casa, tienes hambre y tienes flojera. Tiempo de ordenar comida y decides caminar al restaurante más cercano.

Decides ordenar de McDonalds, buscas en su menú para ver las opciones y pides una BigMac. Esta orden es recibida en McDonald's, enviada a la cocina y posteriormente se ejecuta una serie de pasos para crear la hamburguesa, la cual se te entrega y la comes rápidamente.

Rico.

Ok, sigues con hambre, pero no quieres otra hamburguesa, así que decides pedir comida a Pizza Hut.

Cuando llamas a Pizza Hut, ¿Qué pasaría si intentas ordenar algo del menú de McDonald's? (una Big Mac, por ejemplo). Probablemente crearias una confusión en Pizz Hut y no podrías tener el platillo que estas buscando.

¿Y que es es una API?
Es como un menú.

En la analogía de arriba, tu (la persona hambrienta) eres un programa y los restaurantes son otros programas con los que quieres interactuar. Para recibir algo que quieres (comida) de otro programa (restaurante), necesitas hacer una solicitud (hacer un pedido al restaurante) de una forma en específica (definida por el menú). Si tratas de hacer la solicitud de la manera incorrecta, no obtendrás lo que quieres.

Las APIs son como menús.

Los menús definen una lista de platillos y cuando alguien ordena uno de esos platillos, el restaurando hace varios procesos y regresa el platillo solicitado.

Las APIs definen la lista de comandos y cuando uno de esos programas usa uno de esos comandos, el otro programa hace varios procesos y regresa lo que fue solicitado por ese comando. (usualmente algún tipo de información).

What is an API?

¿Y que tiene que ver pedir comida con el internet?

Las APIs hacen posible para los programas interactuar unos con otros. Esto es importante especialmente para programas, porque ellos pueden ser escritos en diferentes lenguajes de programación (Javascript, Ruby, etc), así las APIs proveen un medio para superar esa “barrera de lenguaje”.

También, una API ayuda para no salir de tu programa para usar el programa de alguién más. Por ejemplo, podrías conectarte al API de Twitter desde un programa que estés desarrollando tú para poder mostrar los últimos Tweets de Donald Trump y mostrarlos a tus visitantes. De esta forma, tus visitantes pueden leer los tweets de Donald Trump son sin salir de tu sitio e ir a twitter.com.

O tal vez alguna vez te preguntaste como le hace Facebook para mostrar tus fotos de Instagram. Ahora tienes la respuesta.

¿Y cual es la relación de las APIs con HTTP?

El API dicta los comandos necesarios para la interacción entre programas. El HTTP se encarga de transportar la información entre los programas que estén interactuando en el API.

En la analogía del restaurante y el menú, tú podrías pedir la comida vía telefónica, por internet o de manera presencial.

HTTP seria el medio de transporte cuando la solicitud es vía internet. Sin embargo, es importante resaltar que existen otros medios de comunicación entre las APIs además de vía internet(HTTP).


Una vez conociendo que es una API y HTTP, estás preparado para que las aplicaciones que desarrolles, interactúen con cualquier otra aplicación del mundo (Facebook, Twitter, Spotify, Youtube, etc). Eso te da un gran poder.

Solo recuerda que tener un gran poder, conlleva una gran responsabilidad.