Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
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
Cualquier ayuda es muy agradecida.
Gracias
Vishant
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.
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:
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.
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
¿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?
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!