#power-bi

Power BI REST API: cosa sono e come utilizzarle?

Power BI REST API: integra, automatizza e governa i tuoi report tramite chiamate API. Guida pratica su endpoint, autenticazione e casi d'uso aziendali.

di Raffaele Brivio
Power BI REST API: cosa sono e come utilizzarle?

Power BI REST API: cosa sono?

Le Power BI REST API sono le interfacce programmatiche di Microsoft per gestire e incorporare risorse Power BI , report, dashboard, dataset, workspace e dataflow , da applicazioni esterne. I casi d’uso includono la pubblicazione automatica dei report tramite pipeline CI/CD, la generazione di token Row-Level Security per analytics incorporati, script di provisioning dei workspace e l’estrazione di metriche di utilizzo per dashboard di governance.

Power BI REST API: a cosa servono e tipologie di operazioni

La Power BI REST API fornisce accesso a vari endpoint di servizio, consentendoti di eseguire tutte le operazioni supportate dal servizio Power BI.

Puoi creare un’applicazione personalizzata utilizzando la Power BI REST API che permette agli utenti di accedere, aggiornare o eliminare dataset. Inoltre, sfruttando altri endpoint API di Power BI, puoi introdurre diverse funzionalità che conferiscono agli utenti un controllo completo sulla piattaforma.

In sintesi, la Power BI API ti consente di:

  • Gestire contenuti di Power BI. Eseguire operazioni come aggiungere, aggiornare e rimuovere dataset, report, dashboard e spazi di lavoro.‍
  • Svolgere compiti amministrativi. Gestire gli utenti aggiungendoli o rimuovendoli e supervisionando i loro ruoli, livelli di accesso e autorizzazioni.‍
  • Integrare contenuti di Power BI. Incorporare grafici di Power BI nelle applicazioni web personalizzate e presentare visualizzazioni in tempo reale.‍ Include una vasta gamma di funzionalità attraverso 17 gruppi operativi distinti, come amministrazione, applicazioni, dataset, flussi di dati e report.

Operazioni delle REST API di Power BI

           Gruppo di operazioni        Descrizione                Admin        Operazioni per l’uso di attività amministrative.                App        Operazioni per l’uso di app.                Funzionalità disponibili        Operazioni che restituiscono le funzionalità disponibili.                Capacities        Operazioni per l’uso di capacità.                Dashboard        Operazioni per l’uso di dashboard.                Account di archiviazione del flusso di dati        Operazioni per l’uso di account di archiviazione del flusso di dati.                Flussi di dati        Operazioni per l’uso di flussi di dati.                Set di dati        Operazioni per l’uso di set di dati.                Token di incorporamento        Operazioni per l’uso di token di incorporamento.                Gateway        Operazioni per l’uso di gateway.                Gruppi        Operazioni per l’uso di gruppi.                Importazioni        Operazioni per l’uso di importazioni.                Pipeline        Operazioni per l’uso delle pipeline di distribuzione.                Set di dati di push        Operazioni per l’uso di set di dati di push.                Report        Operazioni per l’uso di report.                App modello        Operazioni per l’uso di app modello.                Utenti        Operazioni per l’uso di utenti.    

Power BI REST API: come utilizzarle?

Per interagire con Power BI REST API, è necessario ottenere un token di accesso dell’applicazione per l’autorizzazione. Questo token funziona come una credenziale, simile a una password, che consente l’accesso alle risorse protette.

Per prima cosa, è necessario registrare un’applicazione in Azure Active Directory (Microsoft Entra) per ottenere il token di accesso.

Per ottenere il token di accesso Power BI è necessario registrare un’app per Power BI, autoriazzare l’utente tramite Application ID e scambiare il codice di autorizzazione per il token di accesso.

Solo adesso puoi usare il token di accesso per autorizzare la richiesta di Power BI e chiamare la Power BI API.

Di seguito analizziamo nel dettaglio tutti i passaggi riportati sopra.

Register an app for Power BI

Per accedere alla Power BI REST API, è necessario registrare un’applicazione in Azure AD (Microsoft Entra ID). Questa configurazione definisce le autorizzazioni necessarie per l’uso dell’API. Visita lo strumento di registrazione dell’applicazione Power BI e accedi con il tuo account Power BI.

Scegli un nome per la tua applicazione e impostane il tipo su “Applicazione Web lato server”. Specifica l’URL della pagina iniziale della tua app e l’URL di reindirizzamento dove gli utenti saranno indirizzati con il codice di autorizzazione.

Scorri verso il basso per selezionare le API che la tua applicazione è autorizzata ad utilizzare. Puoi impostare il livello di accesso per queste API ora, con la possibilità di modificarle successivamente in Azure. Clicca su “Registra” per salvare la tua applicazione.

Dopo aver registrato con successo l’applicazione, riceverai l’Application ID e l’Application Secret. Copia e conserva questi dettagli in modo sicuro, poiché li utilizzerai in seguito per utilizzare la Power BI REST API.

Powerbi rest api

Authorize the user using Application ID

Dopo aver registrato l’app, accedi per ottenere il token di accesso. Questo token sarà necessario per chiamare la Power BI REST API nei passaggi successivi. Per farlo, accedi all’indirizzo https://login.microsoftonline.com/common/oauth2/authorize con i seguenti parametri:

  • ClientID
  • ResponseType
  • RedirectURI
  • ResponseMode
  • Scope
  • State (opzionale)‍ Costruisci l’URL e inseriscilo nella barra degli indirizzi del tuo browser, quindi premi Invio. Clicca su “Accetta” per concedere le autorizzazioni richieste all’app.

Verrai reindirizzato all’URL specificato con il codice di autorizzazione incluso. Trova il codice di autorizzazione nell’URL, che appare dopo code= e prima di &, e copia questo segmento.

Quello segmento è il codice di autorizzazione. Potresti ricevere un errore “pagina non trovata” in questo momento, poiché potresti non aver configurato un’app attiva all’URL di reindirizzamento per gestire la richiesta di autorizzazione.

Get Power BI API access token

Una volta ottenuto il codice di autorizzazione, puoi scambiarlo con un token di accesso. Per recuperare il token, invia una richiesta POST all’endpoint del token con il codice e i dettagli specificati:

  • Client ID
  • Client Secret
  • Code
  • Scope
  • Redirect URI
  • Grant Type‍ La risposta includerà il token di accesso. Copia il valore di access_token dalla risposta.

Call Power BI API

Dopo aver ottenuto il token di accesso, puoi utilizzarlo per autenticare le tue richieste la Power BI API. Includi quanto segue nell’intestazione della richiesta:

Bearer {access_token}

Power BI può chiamare una REST API?

Puoi chiamare una REST API direttamente da Power BI. La fonte dati “Web” in Power BI Desktop ti consente di recuperare dati da qualsiasi endpoint di un’API web. Dovrai inserire l’URL JSON e includere il token di accesso se necessario.

Supponiamo che tu voglia recuperare i dati degli utenti da un endpoint di un’API web. Ecco come procedere.

In Power BI Desktop, vai su Home > Dati e clicca su Ottieni dati. Dal menu a discesa, scegli Web. Inserisci l’URL dell’endpoint dell’API web e clicca su OK. Puoi optare per l’opzione avanzata per includere parametri e intestazioni specifiche, se necessario.

A seconda del tipo di autenticazione richiesto, segui questi passaggi:

  • Anonimo: Utilizza questa opzione per le API pubbliche che non richiedono autenticazione.‍
  • Basic: Autentica la richiesta fornendo un nome utente e una password.‍
  • Per un’API web, inserisci la chiave di accesso per autorizzare la tua richiesta API. In questo caso, stiamo utilizzando un’API pubblica che non richiede autenticazione. Clicca su Connetti.‍
  • Puoi modificare i risultati nell’editor di Power Query, se necessario; quindi, clicca su Chiudi & Applica per finalizzare le tue modifiche.‍ E questo è tutto! Le informazioni dall’API REST verranno caricate con successo in Power BI. Puoi utilizzarle per generare report visivi, come illustrato di seguito.

Power BI REST API: importare dati e aggiornare dashboard

Una REST API può fungere da fonte per importare dati in Power BI da vari servizi. Inoltre, puoi impostare aggiornamenti automatici per la tua dashboard di Power BI programmando i refresh dei dati.

Per iniziare, apri l’applicazione Power BI Desktop e clicca sul pulsante “Ottieni dati”. Da lì, seleziona l’opzione “Web” e inserisci l’URL dell’endpoint dell’API REST da cui desideri recuperare i dati.

I dati importati da una REST API arrivano solitamente in formato JSON, rendendo essenziale convertirli in formato tabellare per una modellazione e visualizzazione efficace.

Per ottenere questo, fai clic destro sul dataset nell’editor di Power Query e seleziona Converti in Tabella. Questa azione rivelerà un pulsante che ti permette di espandere gli attributi JSON, consentendoti di selezionare quali attributi desideri incorporare nel tuo modello di dati.

Dopo aver creato visualizzazioni nel tuo report utilizzando i modelli di dati importati, puoi costruire una dashboard per condividere queste visualizzazioni pubblicandole nella versione online di Power BI.

Inoltre, puoi impostare un aggiornamento automatico per il dataset. Nell’interfaccia online, fai clic destro sul dataset e seleziona l’opzione Pianifica Aggiornamento. Questo permette a Power BI di recuperare periodicamente nuovi dati dall’endpoint REST API, assicurando che le visualizzazioni della tua dashboard siano sempre aggiornate.

Power BI API: Service Principal

Per consentire alle applicazioni Azure di accedere alle Power BI API, puoi configurare un principal di servizio. Questo funge da identità di sicurezza per l’applicazione, eliminando la necessità di metodi di autenticazione manuali.

Ecco come configurare un principal di servizio per le Power BI REST API:

  • Inizia creando una nuova applicazione in Azure AD (Entra ID) e impostando un gruppo di sicurezza. Successivamente, concedi ai principal di servizio l’accesso alle Power BI API.‍
  • Accedi al Power BI Admin Portal, seleziona Impostazioni del tenant e, sotto Impostazioni per sviluppatori, attiva l’opzione “Incorpora contenuti nelle app”.‍
  • Attiva l’opzione “Consenti ai principal di servizio di utilizzare le Power BI API nella stessa sezione e fai clic su “Applica”.‍ È importante notare che l’app Azure AD può accedere solo a report, dashboard e dataset di Power BI se ha le autorizzazioni appropriate per il workspace.

Per includere un account di servizio nel tuo Workspace, inizia accedendo a Power BI Service.

Da lì, seleziona il menu “Altro” e poi scegli “Accesso al Workspace” per il workspace pertinente. Nella sezione “Aggiungi amministratori, membri o collaboratori”, aggiungi il Principal di Servizio e fai clic su “Aggiungi”. Il nome del principal di servizio corrisponde al nome visualizzato dell’app Azure AD.

Hai configurato con successo un principal di servizio e sei pronto per utilizzare le Power BI REST API con esso.

Come chiamare le Power BI REST API da Phyton

La REST API offre funzionalità avanzate, come la navigazione nella gerarchia delle cartelle, la scoperta dei contenuti delle cartelle, il download delle definizioni dei report, la modifica dei parametri di report predefiniti e la gestione dei piani di aggiornamento, tra le altre capacità. Tutte queste Power BI API possono essere chiamate da Python; di seguito vediamo come fare.

Power bi rest api python

Power BI REST API da Phyton: Report Server

Puoi utilizzare questa istanza nelle chiamate API per autenticarti con il Power BI Report Server e accedere a vari endpoint API. Il seguente esempio di codice illustra come effettuare una richiesta API in Python per ottenere l’elenco dei report Power BI ospitati sul server.

Per autenticarti con l’API del Power BI Report Server, dovrai usare la libreria requests_ntlm2 insieme al metodo HttpNtlmAuth per l’autenticazione NTLM. Innanzitutto, definisci le variabili username, password e baseurl. Quindi, crea un’istanza di HttpNtlmAuth utilizzando queste credenziali per stabilire la connessione.

Power BI REST API da Phyton: List of Reports

Il codice recupera un elenco di report Power BI dal Power BI Report Server accedendo all’endpoint PowerBIReports. Invia una richiesta GET all’endpoint designato, autenticandosi con le credenziali fornite. La risposta risultante viene quindi convertita in un DataFrame di Pandas per una gestione e un’analisi più semplici.

Power BI REST API da Phyton: List of Folders

Ecco un frammento di codice Python per ottenere l’elenco delle cartelle dal Power BI Report Server. Questo codice utilizza la libreria requests per inviare una richiesta GET all’endpoint pertinente e elabora la risposta JSON per generare un DataFrame di Pandas, contenente i dettagli delle cartelle disponibili sul server.

Power BI REST API da Phyton: List of Refresh Plan

Per ottenere i CacheRefreshPlans per tutti i report Power BI pubblicati sul Power BI Report Server, è necessario prima raccogliere i dettagli di tutti i report. Successivamente, è necessario iterare attraverso ogni report per recuperare i relativi CacheRefreshPlans.

Questo si ottiene prima recuperando l’elenco completo dei report Power BI e poi accedendo ai CacheRefreshPlans per ogni report singolarmente. Combinando i risultati di ciascun report, puoi creare un DataFrame completo che offre una panoramica dei piani di refresh per tutti i report Power BI.

Power BI REST API da Phyton: List of Users

Per ottenere l’elenco degli utenti collegati ai report di Power BI sul Power BI Report Server, puoi utilizzare il seguente codice Python. Questo codice interagisce con il Power BI REST API per recuperare le politiche degli elementi per ogni report ed estrarre le informazioni sugli utenti pertinenti.

Una volta eseguito il codice, avrai un DataFrame che include gli ID dei report, i nomi degli utenti di gruppo e i ruoli degli utenti collegati a ciascun report. Queste informazioni possono essere utilizzate per gestire e analizzare le politiche di accesso e i permessi degli utenti per i report di Power BI sul server.

Power BI REST API da Phyton: List of RLS

Il codice sfrutta l’API di Power BI Report Server per raccogliere informazioni sulla sicurezza a livello di riga dai report di Power BI. Include due funzioni principali: get_df_from_pbrs, che recupera un DataFrame dei report, e get_report_related_data, che ottiene i ruoli del modello di dati e le assegnazioni dei ruoli per ciascun report.

I DataFrame risultanti forniscono informazioni sulle impostazioni di sicurezza a livello di riga nei report di Power BI sul Power BI Report Server. Puoi facilmente ottenere queste informazioni chiamando le funzioni con i parametri pertinenti.

Power BI REST API: quali sono le limitazioni?

Microsoft Power BI implementa un sistema di throttling per migliorare le prestazioni e prevenire l’abuso delle API. Vengono imposti limiti basati sul tempo riguardo al numero di richieste API e righe elaborate. Anche se non ufficialmente documentati, ecco alcuni limiti di frequenza comunemente osservati per il Power BI REST API:

  • 120 richieste POST al minuto

  • 10.000 righe per richiesta POST

  • 1 milione di righe all’ora‍ Se superi questi limiti in un certo intervallo di tempo, potresti ricevere il codice di stato 429. Inoltre, la funzione dei dataset push, che supporta aggiornamenti in tempo reale, ha le sue restrizioni specifiche, tra cui:

  • Massimo 75 righe e colonne ciascuna

  • Massimo 10.000 righe per richiesta POST

  • 1 milione di righe aggiunte all’ora per dataset

  • Massimo 5 richieste POST in sospeso per dataset

  • 120 richieste POST di righe per dataset al minuto‍ Non è compatibile con i profili di servizio principale.

Conclusioni

Le Power BI REST API sono essenziali per chi lavora quotidianamente con Power BI. Queste Power BI API permettono di automatizzare, gestire e integrare operazioni complesse, eliminando la necessità di interventi manuali e riducendo il tempo impiegato.

Grazie alla loro capacità di interfacciarsi con sistemi esistenti, aggiornare automaticamente i dataset, incorporare report in applicazioni personalizzate e gestire permessi e ruoli, le Power BI REST API ampliano notevolmente le funzionalità della piattaforma Power BI, consentendo di sfruttare al massimo il potenziale dei dati.

FAQ sulle REST API di Power BI

Ecco le risposte ad alcune delle domande più frequenti sulle REST API di Power BI, basate sul contenuto del nostro articolo.

Cosa sono le REST API di Power BI?

Le API REST di Power BI sono interfacce di programmazione che consentono l’accesso programmatico alle funzionalità del servizio Power BI, come set di dati, report e dashboard, permettendo l’integrazione, l’automazione e l’incorporamento delle capacità di Power BI in applicazioni personalizzate.

Cosa si può fare con le REST API di Power BI?

Puoi gestire i contenuti di Power BI, eseguire compiti amministrativi, integrare i contenuti di Power BI in applicazioni personalizzate e automatizzare i processi.

Come si usano le REST API di Power BI?

Per usare le API REST di Power BI, registra un’applicazione in Azure Active Directory, ottieni un token di accesso e usalo per autenticare le richieste API.

Power BI può chiamare una REST API?

Sì, Power BI può chiamare direttamente una API REST utilizzando la fonte dati ‘Web’ in Power BI Desktop.

Quali sono i limiti delle REST API di Power BI?

Le API REST di Power BI hanno limiti come 120 richieste POST al minuto, 10.000 righe per richiesta POST e 1 milione di righe all’ora. Superare questi limiti può comportare un codice di stato 429.

Raffaele Brivio

Scritto da

Raffaele Brivio

Modern AI Apps · Dev4Side

Dev4Side Software · Microsoft Gold Partner

Hai bisogno di implementare questo nella tua azienda?

I nostri team specializzati hanno completato oltre 200 implementazioni Microsoft in tutta Italia. Contattaci per una valutazione gratuita e senza impegno del tuo progetto.