Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
Syndicate_Admin
Administrator
Administrator

API de REST que se conecta a Power BI

Hola equipo,

Estoy intentando conectar la API de Rest a Power BI. Actualmente estoy usando la siguiente consulta tratando de conectarme a través de "Consulta en blanco"

Pero la consulta a continuación proporciona solo 10k registros. Además, cuando intento conectarme a la web, no estoy seguro de los detalles de la "Clave" para conectarme

vuelo

Fuente = Json.Document(Web.Contents("https://-------------------PageNumber=1&PageSize=50000",

[

Encabezados = [

#"aceptar" = "*/*",

#"x-api-key" = "------------------"

]

]

))

en

Fuente

Al intentar conectarse a través de WEB, no está seguro de qué tipo de detalles clave deben agregarse aquí.

Por favor, consejos

toovishant_0-1750435216408.png

Cualquier ayuda es muy agradecida.

Gracias

Vishant

11 REPLIES 11
Syndicate_Admin
Administrator
Administrator

Sí, puede conectarse a Power BI mediante la API de REST, pero es principalmente para administrar cosas como conjuntos de datos, informes y actualizaciones, no para extraer datos directamente en los informes. Para ello, normalmente se utilizan conectores como SQL, SharePoint, etc.

Syndicate_Admin
Administrator
Administrator

Hola @toovishant,

Gracias por ponerse en contacto con la comunidad de Microsoft Fabric y gracias a @lbendlin por sus valiosas aportaciones en este hilo.

En la captura de pantalla, parece que está intentando usar el conector web en Power BI y no está seguro de qué escribir en el campo Clave en Autenticación de API web.

Dado que ya ha logrado llamar correctamente a la API mediante una consulta en blanco con Web.Contents y un encabezado x-api-key personalizado, está absolutamente en el camino correcto. A menudo se prefiere este enfoque cuando se trabaja con API que requieren encabezados personalizados, que la interfaz del conector web estándar no siempre admite bien.

Si aún desea explorar el uso de la interfaz de usuario del conector web, puede continuar a continuación:

  • Seleccione Web API como método de autenticación.
  • En el campo Clave, introduzca el valor de la clave de API (sin comillas).
  • Sin embargo, tenga en cuenta que algunas API (como la suya) requieren que la clave se pase mediante un encabezado personalizado (por ejemplo, x-api-key). Es posible que el conector web no lo permita directamente, en cuyo caso, el método actual que usa Web.Contents en una consulta en blanco sigue siendo la opción más flexible y confiable.

Por favor, consulte los enlaces de los documentos mencionados a continuación para una mejor comprensión:
Conector web de Power Query - Power Query | Microsoft Learn
Web.Contents - PowerQuery M | Microsoft Learn

Con respecto al límite de 10.000 registros: es probable que la razón por la que solo recibe 10.000 registros se deba a la configuración de paginación impuesta por la API. La mayoría de las API de REST usan parámetros como PageNumber, offset o nextLink para devolver datos en fragmentos o páginas.

Ya que mencionaste que la API está documentada usando Swagger, te recomiendo que revises cómo se maneja la paginación allí. Una vez que identifique el parámetro correcto (p. ej., ? PageNumber=2, ?offset=10000, etc.), podemos ayudarle a escribir una consulta en Power BI para recorrer todas las páginas y recuperar el conjunto de datos completo.

Si tiene alguna pregunta al respecto, no dude en ponerse en contacto con nosotros. Estaremos encantados de ayudarte. Si esta publicación ayuda, entonces por favor danos 'Felicitaciones' y considera Acéptalo como una solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Gracias por usar el Foro de la comunidad de Microsoft.

@v-kpoloju-msft

Aquí intenté crear un bucle para obtener todo el conjunto de datos de Page. Pero esto no está funcionando, por favor, ¿puede guiar si esto tiene que ser refinado o es este el enfoque que tengo que usar?

dejar
Función para obtener datos de un número de página determinado
FetchPage = (PageNumber como número) =>
dejar
Fuente = Json.Document(Web.Contents("https://---------------ces",
[
Consulta = [PageNumber = Text.From(PageNumber), PageSize = "10000"],
Encabezados = [
#"aceptar" = "*/*",
#"x-api-key" = "-------------"
]
]
)),
Datos = Fuente[resultados]
en
Datos

Inicializar variables
Tamaño de página = 10000,
MaxPages = 10, // Suponiendo que la API se limita a 10 páginas
Número de página = 1,
Resultado = FetchPage(PageNumber),
AllData = Resultado,

Bucle para obtener todas las páginas dentro del límite
Bucle = Lista.Generar(
() => [PageNumber = 2, Result = FetchPage(2)],
cada [PageNumber] <= MaxPages y List.Count([Resultado]) > 0,
cada [PageNumber = [PageNumber] + 1, Result = FetchPage([PageNumber])],
cada [Resultado]
),

Combinar todas las páginas
CombinedData = List.Combine({AllData} & Loop),

Convertir en tabla y expandir columnas
#"Convertido en Tabla" = Tabla.FromList(CombinedData, Splitter.SplitByNothing(), null, null, ExtraValues.Error)
en
#"Convertido en tabla"

Gracias

Vishant

Hola @toovishant,

Gracias por compartir los detalles y guiarnos a través de su enfoque.

A partir de su explicación, parece que está intentando recorrer varias páginas de una API de REST mediante List.Generate, que es una estrategia válida en Power Query. Dicho esto, si el ciclo no funciona como se esperaba, hay algunas áreas que vale la pena revisar:

Evaluación de variables en List.Generate: asegúrese de que el PageNumber usado dentro de la función FetchPage se actualiza correctamente en cada iteración. En Power Query, la forma en que se pasa el estado en List.Generate a veces puede dar lugar a un comportamiento inesperado si no se controla cuidadosamente.

Lógica de terminación: está usando un MaxPages codificado de forma rígida = 10, lo cual está bien para las pruebas, pero en producción, es más confiable salir en función de los datos reales, por ejemplo, cuando una página devuelta tiene menos del tamaño de página esperado o está vacía.

Validación de salida de función: puede ser útil validar si FetchPage() devuelve lo que esperas (una lista, tabla o registro) y si el campo "resultados" siempre existe. Un campo faltante o una estructura no coincidente podrían romper silenciosamente el bucle.

Diagnóstico: Como siguiente paso, considere probar la función FetchPage() de forma independiente para un par de números de página a fin de verificar la coherencia en la estructura devuelta. Eso ayudará a aislar si el problema está en la paginación o en la recuperación base.

Por favor, consulte el siguiente enlace de documentación para una mejor comprensión:
List.Generate - PowerQuery M | Microsoft Learn

Si tiene alguna pregunta al respecto, no dude en ponerse en contacto con nosotros. Estaremos encantados de ayudarte. Si esta publicación ayuda, entonces por favor danos 'Felicitaciones' y considera Acéptalo como una solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Gracias por usar el Foro de la comunidad de Microsoft.

Hola @toovishant,

¿Puedo preguntarle si ha resuelto este problema? Si es así, marque la respuesta útil y acéptela como la solución. Esto será útil para que otros miembros de la comunidad que tengan problemas similares lo resuelvan más rápido.

Gracias.

Hola @toovishant,

Quería comprobar si ha tenido la oportunidad de revisar la información proporcionada. No dude en ponerse en contacto con nosotros si tiene más preguntas. Si mi respuesta ha abordado su consulta, acéptela como una solución y dé un 'Felicitaciones' para que otros miembros puedan encontrarla fácilmente.
Gracias.

Hola @toovishant,

Espero que esta información sea útil. Por favor, hágamelo saber si tiene más preguntas o si desea discutir esto más a fondo. Si esto responde a su pregunta, acéptelo como una solución y dele un 'Felicitaciones' para que otros puedan encontrarlo fácilmente.
Gracias.

@v-kpoloju-msft - Solicite su ayuda. Después de verificar, veo que hay una limitación y necesito solicitar la segunda página y así sucesivamente, cambiando los parámetros a la url. ¿Sabes si puedo crear un bucle para obtener estos datos con la misma consulta?

Gracias

Vishant

Syndicate_Admin
Administrator
Administrator

¿Qué API REST es esa? ¿Viene con documentación?

Así es, tengo que consultar la documentación a través de la API de Swagger, ¿esto ayuda?

¿Tiene un enlace a la documentación?

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.