Obtener datos de una llamada API directa y visualizarlos en el panel de PowerBI

Un usuario Pregunto ✅

dsrajapaksa

Hola !

Estoy construyendo un panel en línea de PowerBI que visualiza datos que se pueden recuperar de una llamada API directa para mi sistema backend con un punto final API como este:

(OBTENER) https://api.testapi.online/api/v1/admin/usageadmin/unreported/{programa}/{año}/{mes}

En el punto final de la API anterior, tengo tres variables dinámicas (programa, año, mes) que un usuario puede cambiar desde el menú desplegable del tablero y luego visualizar los datos. En este caso, no puedo recuperar los datos y almacenarlos en otra base de datos si estos datos son en tiempo real (cambian dinámicamente de vez en cuando).

¿Cómo puedo crear un panel para un caso de uso como este? Gracias por adelantado 🙂

Hola @dsrajapaksa,

Lo siento, pero actualmente Web Connector no es compatible con Directquery, podemos generar una tabla previa para obtener todos los resultados posibles y luego usar la actualización programada para que se actualice por horas.

La consulta de ejemplo está aquí:

let
  TOKENS_TRING = "XXXXXXXXXXXXXXXXXXXXX",

  // generate all the possible ProgramNames/Years/Month
  ProgramsTable = Table.FromRows(
    {
        {"ProgramA"},
        {"ProgramB"},
        {"ProgramC"}
    },
    {"ProgramName"}
  ),
  YearTable = Table.ExpandListColumn(Table.AddColumn(ProgramsTable,"Year",each {1990..2021}), "Year"),
  MonthTable = Table.ExpandListColumn(Table.AddColumn(YearTable,"Month",each {1..12}), "Month"),

  // Call APi for each program/Year/Month
  Source = Table.AddCoulmn(MonthTable,"Data", each 
    let
        // configure string
        URL_STRING =  "https://api.testapi.online/api/v1/admin/usageadmin/unreported/",
        RELATIVE_PATH_STRING = [ProgramName] & "https://community.powerbi.com/" & [Year] & "https://community.powerbi.com/" & [Month],
        TIMEOUT_VALUE = #duration(0,0,5,0),
        HEADER_RECOEDS=[Authorization="Bearer " & TOKENS_TRING]
    in
        Web.Contents(URL_STRING,[RelativePath = RELATIVE_PATH_STRING, Timeout = TIMEOUT_VALUE, Headers = HEADER_RECOEDS])
  )

in
  Source

Luego expanda el [Data] Columna para obtener los datos deseados, puede aplicar cortadores / filtros para obtener datos filtrados

O puede intentar crear un conector personalizado ODBC para llamar a la API RESTful, el conector personalizado ODBC puede admitir consultas directas y lograr una experiencia de informe casi en tiempo real, consulte los siguientes documentos sobre cómo crear un conector personalizado:

https://docs.microsoft.com/en-us/power-query/startingtodevelopcustomconnectors

https://docs.microsoft.com/en-us/power-query/odbc#odbc-extensibility-functions

Atentamente,

dsrajapaksa

En respuesta a v-lid-msft

Gracias por la respuesta @ v-lid-msft: ¿Podemos cambiar dinámicamente las propiedades de la URL de la API de la manera anterior, por ejemplo, si el usuario selecciona el mes y el año en un menú desplegable en el panel de PowerBI? llamamos a la API pasando los valores dados por el usuario a través del menú desplegable?

En respuesta a dsrajapaksa

Hola @dsrajapaksa,

Lo siento por eso, según mi investigación, no encontramos una solución efectiva para cumplir con sus requisitos, si usamos el parámetro de consulta para cambiar la consulta, aún necesitamos actualizar el conjunto de datos para obtener los datos de actualización que dependen del parámetro. ¿Quizás @ImkeF pueda darnos una idea brillante o una guía adecuada?

Atentamente,

dsrajapaksa

En respuesta a v-lid-msft

Gracias por la respuesta @ v-lid-msft: @ImkeF ¿Puedo buscar su apoyo si conoce una solución para esto? Gracias de antemano 🙂

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *