¿Cómo representar datos en Power BI desde APIs REST?
Microsoft Power BI, del que hablamos en su día, es una herramienta de visualización y análisis de datos que permite crear visualizaciones de forma visual, utilizando fuentes de datos como CSV, bases de datos y como es el caso e incluso APIs Rest.
En nuestro artículo de hoy vamos a tratar los siguientes puntos:
- Cómo usar un API REST como fuente de datos para importar datos JSON en Power BI
- Cómo transformar los datos JSON en un formato tabular.
- Cómo hacer una visualización utilizando los datos importados.
Paso 1: instalar Power BI
Lo primero será instalar Power BI. Usaremos la versión Power BI Desktop, que es gratuito y nos va a permitir crear visualizaciones en un entorno de escritorio (sin publicación a web, vamos).
Paso 2: identificar el API REST de la que traeré los datos
Sin datos no vamos a poder hacer nada, así que vamos a utilizar un API pública del entorno CloudLab de Onesait Platform.
Si aun no tenemos cuenta, podemos crear un usuario desde en la opción SIGN UP:
Una vez dentro, podemos acceder a nuestro entorno en el que, si no he creado ningún elemento de la Plataforma, veremos una pantalla inicial como esta:
Lo que nos interesa es buscar un API REST con información que pueda pintar en PowerBI. Estos APIs se encuentran en el menú Development > My REST APIs:
Ahí podremos seleccionar alguna de las APIs a las que tengamos acceso. Por ejemplo, podemos buscar el API con información sobre los Restaurantes en New York:
Una vez localizada el API que nos interesa, lo primero que haremos será invocar el API para comprobar que datos nos devuelve y conocer su estructura. Para ello, lo primero va a ser navegar hasta a la opción de «User Tokens» y nos guardamos el token de usuario, el cual necesitaremos para autentificarnos posteriormente:
Seguidamente navegaremos hasta la opción de Swagger del API seleccionada:
Se nos abrirá una ventana en la que visualizaremos las opciones disponibles del API. Para la de restaurantes, veremos que el API sólo tiene un método GET que nos devolverá todos los restaurantes registrados:
Para conseguir la respuesta, iremos al método y seleccionaremos la opción de «Try it out», pegando el token que hemos copiado previamente, y pulsaremos en el botón de «Execute»:
Al ejecutarlo, podremos ver la estructura de cada restaurante en el listado recibido:
Visto desde un IDE:
Paso 3: importar datos desde el API REST
Ahora que tenemos los datos, vamos a abrir Power BI e iremos a la opción Obtener Datos > Web:
En la parte de la URL introduciremos la URL del API REST de los restaurantes (o del API que hayáis escogido, claro). Es importante marcar la opción de «Uso avanzado»:
Como cabecera HTTP indicaremos lo siguiente:
accept: application/json
X-OP-APIKey: <mytoken> // Cambiar «mytoken» por vuestro token personal
Al final nos quedará algo como esto:
Bueno, pues pulsaremos sobre «Aceptar», y seguidamente en «Conectar» en la siguiente pantalla.
Tras esto, Power BI abrirá el Query Editor presentándonos el JSON importado desde la llamada al API REST en un formato tabular, como podemos ver en la imagen:
Si vamos navegando por el slide, podremos ver todos los campos de cada elemento JSON:
Si pinchamos sobre un elemento, nos dará la información completa:
Podemos ver que el atributo «Restaurant.grades» es una lista, y si pinchamos sobre ella en la tabla accedemos a los elementos:
Y si pinchamos sobre el elemento «Record», veremos el detalle:
Para volver a la tabla original, en la ventana de «PASOS APLICADOS» eliminaremos los últimos pasos:
Paso 4: convertir datos importados en una Pivot Table
Para crear una visualización, es mejor convertir los datos importados en una tabla. Para eso, vamos nuevamente a «PASOS APLICADOS», y nos situamos en el primer elemento Origen:
Aparecerá entonces la opción «Convertir a Tabla», que será la que vamos a seleccionar. Descubra a emoção do Mines, o jogo que está conquistando os corações dos brasileiros! Conhecido também como Mines Aposta ou jogo da mina , este desafio explosivo promete horas de diversão e adrenalina pura. A cada clique, surpreenda-se com as revelações e multiplique suas chances de ganhar. Não perca tempo e venha experimentar a aventura do Mines no melhor cassino online!
Ante el modal que aparecerá, pulsaremos en «Aceptar»:
Ahora, como queremos que la tabla tenga varias columnas para los campos del JSON, pulsaremos el botón que aparece a la derecha:
De las posibles opciones que nos aparecen, seleccionaremos todas ellas:
Y luego volveremos a hacer lo mismo sobre el atributo complejo Restaurant:
Haremos lo mismo para Column1.Restaurante.address y Column1.Restaurants.grades:
Hecho esto, estamos viendo todos los atributos que nos interesaban. Por tanto, podemos pulsar en «Cerrar y Aplicar»:
Tras esto, tendremos cargada la tabla en el modelo, y podemos ver las columnas:
Paso 5: crear una visualización en la vista visualización
Una vez hemos transformado los datos en una tabla con el Editor de Consultas de Power BI, podemos crear una visualización. Podemos crear diferentes tipos de visualización, así que veamos algunas.
En visualizaciones, seleccionaremos una visualización en la paleta, y podremos configurar los campos a visualizar arrastrándolos a los diferentes componentes.
Por ejemplo, en Legend podemos arrastrar Column1.Restaurant.cuisine y en Legend al arrastrar el campo _id me aparecerá como Recuento:
Ahora seleccionaremos otro componente, como el gráfico circular, y en este caso seleccionaremos las valoraciones:
En una próxima entrada veremos cómo crear visualizaciones más complejas y relacionadas. ¡No os lo perdáis!