Seguindo uma sequência de estudos sobre APIs, resolvi testar e publicar um caso prático de conexão através do Power BI com uma API simples mas bem estruturada, documentada e com mecanismo de autenticação.
Algum tempo atrás já havia brincado um pouco com a API RESTful da Marvel (https://developer.marvel.com), através do PHP, dessa vez pensei em utilizar o Power Query e um pouco da linguagem M para conectar e fazer as requisições diretamente pelo Power BI.
Conectar na API é bem simples, a documentação descreve detalhadamente a forma de autenticação, criptografia utilizada, parâmetros e os endpoints necessários para fazer os requests, sendo assim, no Power BI basta usar o conector do tipo web e colar a URL já montada (URL+tokens+hash):
A grande dificuldade foi realizar a paginação dos dados, uma vez que a API retorna uma quantidade limitada de registros.
Utilizei a ferramenta open source Nightingale REST Client para testar e conhecer melhor os para metros que eu precisaria utilizar.
Nessa parte, foi necessário informar o parâmetro “limit” e “offset” na URL, para que cada request se inicie exatamente após onde o anterior terminou.
Exemplo: A requisição #01 retorna registros de 1 a 100, requisição #02 retorna registros de 101 a 200, e assim por diante.
Após pesquisar bastante, a solução encontrada foi criar uma lista contendo o “tamanho” da paginação e transformar em tabela:
Cada registro nessa tabela será uma iteração no loop para cada requisição saber onde se inicia os JSON retornado (1, 101, 201, 301, etc).
Veja abaixo o dashboard criado com os dados obtidos: