Nuestra actual ‘vida conectada’ se basa en la comunicación entre dispositivos y servicios: enviamos un mensaje a un grupo en Whatsapp, subimos una foto a Instagram, compartimos un enlace interesante en Twitter… Todas esas acciones no serían posibles sin un canal de comunicación entre estos dispositivos y servicios que interactúan entre sí. Dicho canal de comunicación casi siempre suele estar basado en una API. Seguro que hemos escuchado muchas veces la palabra pero, ¿en qué consiste una API? Nuestro Chief Technology Officer Javier Sagra nos lo cuenta en este post.
¿Qué es una API?
Una API («Application Programming Interface» o «Interfaz de Programación de Aplicaciones») es un conjunto de reglas y herramientas que pone ciertas funciones de una aplicación a disposición de terceros. A grandes rasgos, podemos diferenciar entre:
– APIs de aplicación: Estas APIs pueden formar parte del sistema operativo de un ordenador y estar disponibles para otras aplicaciones, como cuando por ejemplo una aplicación de escritorio tiene que mostrarse en una ventana; utiliza una API del sistema para dibujar la ventana, los botones de minimizar, cerrar, los menús…
– APIs web: Las APIs web, también llamadas WebServices o simplemente API, son un conjunto de reglas y métodos que una aplicación web expone al mundo (a través de Internet) para facilitar la interacción con aplicaciones de terceros. En este post desarrollaremos este tipo de APIs (concretamente las API REST) y las ventajas que aporta su adopción a una compañía.
¿Para qué sirve una API?
Ya sabemos que una API es un conjunto de reglas y herramientas que un servicio expone, pero ¿qué quiere decir eso? Pues que tenemos una forma inequívoca de utilizarla, un «contrato», o como se suele decir en el mundo IT, una ‘capa de abstracción’: se permiten hacer las acciones que contempla la API y sólo esas acciones, sin necesidad de exponer cómo funciona internamente el sistema. Y de forma segura, ya que generalmente deberemos tener un «token» o código que nos identifique a la hora de consumir la API.
Por lo tanto, podemos hacer uso en nuestra propia aplicación de un servicio web que no es nuestro, y con seguridad.
Veamos algunos ejemplos:
– Compartir un artículo interesante a través de las redes sociales. Al clicar sobre el icono correspondiente, el visitante iniciará sesión si es necesario, y podrá compartirlo en su cuenta con total seguridad.
– Pagar con tarjeta de crédito a través de Internet. Todas las pasarelas de pago utilizan APIs para poder llevar a cabo este proceso.
– Webs que se dedican a comparar precios de seguros, hoteles etc: a grosso modo, lo que hacen es consultar la API de cada uno de esos hoteles para saber en cada momento la disponibilidad o el precio, entre otros datos, para ofrecer al cliente el mejor valor en cada momento.
Ejemplos de uso de una API
La mejor manera de ver cómo funciona una API es utilizarla, y para ello vamos a ayudarnos de las APIs abiertas de Open Data Barcelona. Concretamente, de las que nos dan acceso a datos en tiempo real del estado del servicio Bicing.
Para ver lo sencillo que puede ser consumir una API, visitemos por ejemplo la siguiente dirección:
https://www.bicing.cat/current-bikes-in-use.json
recibiremos una respuesta parecida a ésta:
{«error»:0,»bikesInUsage»:208,»electricalBikesInUsage»:»3″,»mechanicalBikesInUsage»:»205″,»dateTime»:»2019-01-29 15:05:04″}
Se trata de una respuesta en formato JSON (formato ligero de intercambio de datos), muy utilizado en las APIs. Parece que no tenga mucho sentido, pero si le damos un poco de formato, la información que recibimos queda más clara:
{
"error": 0,
"bikesInUsage": 208,
"electricalBikesInUsage": "3",
"mechanicalBikesInUsage": "205",
"dateTime": "2019-01-29 15:05:04"
}
Si refrescamos la página veremos que la información que muestra va cambiando en tiempo real. Probemos ahora con este otro enlace:
http://wservice.viabicing.cat/v2/stations
Recibiremos muchísima información sobre cada una de las estaciones de Bicing de la ciudad, como su dirección, estado, slots libres, número de bicicletas…
{
"stations": [
{
"id": "1",
"type": "BIKE",
"latitude": "41.397952",
"longitude": "2.180042",
"streetName": "Gran Via Corts Catalanes",
"streetNumber": "760",
"altitude": "21",
"slots": "26",
"bikes": "3",
"nearbyStations": "24, 369, 387, 426",
"status": "OPN"
},
{
"id": "2",
"type": "BIKE",
"latitude": "41.39553",
"longitude": "2.17706",
"streetName": "Roger de Flor/ Gran Vía",
"streetNumber": "126",
"altitude": "21",
"slots": "20",
"bikes": "6",
"nearbyStations": "368, 387",
"status": "OPN"
},
{
…..
}
}
Podemos recoger la información de una estación específica, por ejemplo, añadiendo el ID de estación separado por una barra (/):
http://wservice.viabicing.cat/v2/stations/2
Tras obtener toda la información que nos proporciona una API, es tarea nuestra procesarla y explotarla. En el caso de estas APIs, las proporciona el ayuntamiento y están abiertas para su consulta, pero existen infinidad de otras APIs que generalmente piden que dispongamos de algún tipo de identificador, llamado «token» o «API key», y cuya obtención variará para cada una.
Aquí os dejamos un par de ejemplos para investigar:
¿En qué puede ayudar a mi empresa una API?
Consumir una API de terceros implica tener un canal siempre abierto para enviar información a esos terceros. Por consiguiente, si consultamos regularmente la información que nos ofrecen, obtendremos una interacción prácticamente en tiempo real con ese tercero, que puede ser un proveedor o un cliente.
Si a su vez nosotros exponemos una API (con sus reglas y métodos) para que otros terceros nos consulten o añadan información, podríamos establecer procesos automáticos de entrada de datos hacia nuestras APIs y de salida hacia las APIs de terceros (clientes o proveedores) que estén trabajando y aportando valor de manera continua.
Además, podríamos tener en nuestra organización diferentes procesos independientes entre sí, pero que se comuniquen entre ellos mediante APIs, lo cual es la base de las plataformas de microservicios actuales.
¿Quieres implementar una API en tu negocio? ¿Necesitas ayuda con tu estrategia digital? Nuestros expertos están deseando ayudarte. ¡No lo dudes y contáctanos!