---
title: "¿Cómo representar datos en Power BI desde APIs REST?"
canonical: "https://onesaitplatform-es.refined.site/space/DOC/2215906968/%C2%BFC%C3%B3mo%20representar%20datos%20en%20Power%20BI%20desde%20APIs%20REST%3F"
format: markdown
---
> Macro (toc)

# **Introducción**

**Microsoft Power BI** es una herramienta de visualización y análisis de datos que permite crear visualizaciones de forma visual, permite utilizar fuentes de datos como CSV, bases de datos e incluso APIs Rest.

A continuación explicaremos:

- 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. En el ejemplo usaremos Power BI Desktop que es gratuito y nos permite crear visualizaciones en un entorno desktop (sin publicación a web).

Puedes descargarlo desde Microsoft Store o desde esta url: [https://powerbi.microsoft.com/es-es/desktop/.](https://powerbi.microsoft.com/es-es/desktop/)

![image](media://37a86d69-0310-4f17-ba07-e8716722a748)

# **Paso 2: Identificar el API REST de la que traeré los datos**

En el ejemplo usaremos un API pública del **[Entorno CloudLab de Onesait Platform.](https://lab.onesaitplatform.com/)**

Si no tenemos cuenta, podemos crear un usuario desde [https://lab.onesaitplatform.com/](https://lab.onesaitplatform.com/) en la opción **SIGN UP:**

** **

![image](media://b7f3745d-d899-4cb3-9149-933be599d548)

Una vez logados, podemos acceder a nuestro entorno en el que, si no hemos creado aún ningún elemento de plataforma, veremos una pantalla inicial como esta:

![image](media://898d7cfe-df5c-471a-ad7c-4e880eb7b0c4)

Lo que nos interesa es buscar un API REST con información que podamos pintar en PowerBI. Para eso, accedemos a la opción **DEVELOPMENT>My REST APIs:**

![image](media://771e641b-2aa2-403c-9634-95f08c05fef9)

Ahí seleccionaremos alguna de las APIs a las que tengamos acceso. Por ejemplo podemos buscar el API con información sobre los Restaurantes en New York:

![image](media://f0195734-7805-4d7b-a7ec-910f79a0f780)

Lo primero que haremos será invocar el API para comprobar qué datos devuelve y su estructura. Para eso, primero vamos a la opción **User Tokens **y copiamos nuestro Token.

![image](media://da1fb026-d426-4c0a-9b21-a710a4208615)

Y luego vamos a la opción **Swagger **del API seleccionada:

![image](media://06f0759c-b6aa-4743-936a-c7e53a2b6a00)

Vemos que el API sólo tiene un método GET que me devuelve todos los restaurantes:

![image](media://01aab554-b370-4dba-85f8-754e52cb4bd3)

Vamos al método y seleccionamos **Try it out. **Copiamos nuestro Token y pulsamos **Execute:**

** **

![image](media://f9aa8d74-67d8-416c-8afa-5d9dfb19f964)

Al ejecutarlo, podremos ver la estructura de cada Restaurante en el array recibido:

![image](media://6d4c46cc-4558-46cb-a2b9-54f3f32843b1)

Que es esta:

![image](media://bd8fd03e-8ed2-4892-ad3f-f29c7b3e8feb)

**Paso 3: Importar datos desde el API REST**

Ahora abriremos Power BI, e iremos a la opción **Obtener Datos> Web**

** **

![image](media://4340da43-a30d-41e0-a505-544d66aed3c6)

En la parte de URL copiaremos la URL de nuestro API REST ([https://lab.onesaitplatform.com/api-manager/server/api/v1/Restaurants%20API](https://lab.onesaitplatform.com/api-manager/server/api/v1/Restaurants%20API)) indicando Uso avanzado:

![image](media://81bd9e8b-e4fd-496e-a0d1-e7c4962b111b)

Como cabecera HTTP pondremos

**accept: application/json **

**X-OP-APIKey: <mytoken>**

Quedando al final:

![image](media://f7cb79ff-a13a-4dfd-902a-6bc8820e3a84)

Seleccionaremos **Aceptar **y **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:

![image](media://3af651ef-8082-41a3-afd2-ce41040e1d23)

Si vamos navegando por el slide podemos ver todos los campos de cada elemento JSON:

![image](media://6a5e0098-ac48-40ba-ae94-9985a5dd6122)

Y si pinchamos sobre un elemento, nos dará la info completa:

![image](media://e9f6627b-2992-480a-88b3-32b6c80968fb)

Podemos ver que el atributo **Restaurant.grades **es una List. Si pinchamos sobre ella en la tabla accedemos a los elementos:

![image](media://4ec28168-7df4-42a6-baa0-70516cfc0cd9)

Y si pinchamos sobre el elemento **Record **el detalle:

![image](media://194d336e-e1ea-46d6-8559-7bd5bb5fabd5)

Para volver a la tabla original en la ventana de PASOS APLICADOS, eliminamos los últimos pasos:

![image](media://27921909-89c0-464d-b3a0-a7edd23ce921)

# **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 a **PASOS APLICADOS **y nos situamos en el primer elemento **Origen:**

![image](media://a6d9f840-ecc7-4453-b565-e65f88032850)

Nos aparecerá la opción **Convertir a Tabla, **que seleccionaremos:

![image](media://0385403e-3a08-4d73-940a-0ba537fc7b0f)

Seleccionaremos **Aceptar:**

** **

![image](media://3660eb9a-c6c7-4346-8320-df3fc8d057ff)

Ahora queremos que nuestra tabla tenga varias columnas, para los campos del JSO. Para eso usaremos el botón que aparece a la derecha:

![image](media://62563c0f-fe28-4f54-845e-e555ad6055fa)

Seleccionaremos todas:

![image](media://2f03d156-f8ce-4902-8198-81ac81cfdea4)

Y luego volveremos a hacer lo mismo sobre el atributo complejo Restaurant:

![image](media://a3135fd4-732d-4549-b5c8-29cb8d3f6c7d)

Haremos lo mismo para **Column1.Restaurante.address y** **Column1.Restaurants.grades:**

![image](media://19d7667c-79df-48f9-947f-b255aec26f9d)

Ahora ya estamos viendo todos los atributos que nos interesan… Así que podemos pulsar en **Cerrar Y Aplicar:**

![image](media://5ce9713b-540a-435e-a5a7-1cd37aeb798c)

Tras esto tendremos cargada la Tabla en nuestro modelo y podemos ver nuestras columnas:

![image](media://02cc267a-98fc-4f93-a8bc-766773a3e119)

# **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.

Vamos a crear diferentes tipos de visualización:

Empecemos por el gráfico de columnas agrupadas,

![image](media://3d06f12e-9c64-47a8-aa41-049f9a48564e)

Al seleccionarlo, se incluirá una visualización en nuestra 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 aparecerá como **Recuento:**

![image](media://0e079e9e-be3b-43b1-b01e-4a327d968cc1)

Ahora seleccionaremos otro componente como un gráfico circular, en este caso con las valoraciones:

![image](media://e2e9778c-8e4b-49a8-ac45-b3770d1345c9)