Hoy quise crear un artículo para acompañar el podcast del día que es sobre API's para Developers puedes verlo haciendo click aquí, primero que nada vamos a hablar de qué es un API y posteriormente hablaremos de por qué utilizar servicios externos en tu aplicación.
Qué es
Personalmente me gusta mucho utilizar analogías para explicar, en esta ocasión tomaré una de Quora en donde plantean que puedes ver un API como el menú de un restaurante, cuando ordenas estás haciendo una ejecución al API, y cuando te entregan la comida el API está respondiendo con lo que le pediste.
Técnicamente podemos definir un API como la descripción de un componente de software en términos de sus operaciones, entradas, salidas y tipos de datos (wikipedia). Esto quiere decir que un API es la forma como nos comunicamos con otra aplicación.
Por cierto, tenemos un vídeo que explica en mucho más detalle qué es un API, puedes verlo haciendo click aquí es parte del curso para aprender a programar.
Ejemplos
El podcast de Código Facilito muestra algunos ejemplos, sin embargo para propósitos de este artículo usaremos un ejemplo que no está en el vídeo, el API de Facebook. Facebook ofrece un servicio para comunicarse a través de software con su plataforma, de esta manera es que otras aplicaciones publican en tu nombre, también así funcionan los botones que dicen "Encontrar amigos de Facebook" en diferentes plataformas, también es así como servicios implementan "Iniciar sesión con Facebook" (como nosotros). Facebook en su documentación explica o describe su plataforma en términos de las acciones que puedes realizar sobre ella, los datos que puede recibir y los datos que te va a entregar (que es lo que explicábamos antes), eso es lo que básicamente hace un API.
Existen N API's para hacer N tipo de cosas, Twitter tiene una, Google tiene muchas, PayPal, Spotify, Uber, Telegram y muchos pero muchos otros servicios ofrecen API's para que desarrolladores utilicen los datos y servicios de sus plataformas en pro de crear nuevos productos.
Quiero aclarar que una de las características de un API es que permite que las máquinas utilicen servicios, esto es particularmente importante porque denota la importancia de un API ya que las llamadas y la interacción con estos servicios es dinámica porque te puedes comunicar con código.
¿Para qué?
Existen ejemplos claros en los que es técnica y económicamente imposible sustituir los servicios que ofrece un API, por ejemplo, si quieras hacer una aplicación enfocada en mapas o en locaciones, es bastante claro que no implementarás desde 0 un mapa, muy probablemente (casi 100% seguro) utilizarás los servicios de Google Maps. Si vas a crear un carrito de compras difícilmente vas a construir la interacción entre tú y los bancos, es mejor utilizar PayPal por ejemplo.
Consumir API's de servicios grandes y probados te permite construir aplicaciones web / móviles robustas en menos tiempo y a menor costo. Las posibilidades son incontables, por ejemplo, hoy:
- Puedes comenzar a crear un carrito de compras con PayPal
- Un servicio de administración de archivos con Drive o Dropbox
- Una extensión para Spotify
- Una agenda con Google Calendar
- Un administrador de redes sociales con Twitter / Facebook / Instagram
- Una aplicación para mostrar el clima con Yahoo Weather
- Una Siri con AlchemyAPI
Y así podríamos continuar la lista con N servicios interesantes que te pueden ayudar a crear aplicaciones "encima" de estos servicios. ¿Cuál vas a crear tú?
El Podcast
Recuerda que todos los lunes publicamos cosas que nos parecen interesantes para desarrolladores en YouTube así que pasa a checar los que ya tenemos y deja en los comentarios tus sugerencias para futuros Podcasts.
El curso
También te invitamos a revisar nuestro curso para desarrollar API's en el que te enseñamos desde 0 a crear API's robustas consumidas por múltiples aplicaciones, autenticación por tokens, llaves para consumir el API y muchas cosas más.