Microsoft Graph, introduzione leggerissima ad un ecosistema gargantuesco. Età 9-99.

Introduzione

L’interconnessione dei sistemi Microsoft, così come di altri produttori cloud, può risultare spesso di complicata comprensione. Ogni pezzo di questo gigantesco puzzle si distingue dall’altro non solo in base ad utilizzo o argomento trattato, bensì anche nelle modalità con cui questi prodotti sono fruibili da parte del pubblico finale.

Che si tratti di un servizio web in stile SaaS (n.d.r. Software as a Service, come Office 365), di un pannello di amministrazione o addirittura della Azure CLI, ognuno di questi sistemi concorre, o meglio concorreva, nel creare disagi ai poveri sviluppatori sprovveduti che, aimè, dovevano impararsi l’ennesimo SDK, l’ennesima API e spulciare le altrettante documentazioni.

Finalmente dopo anni, in stile Shakespeariano, entra Microsoft Graph.

Cos’è Microsoft Graph?

Se dovessimo ascoltare le centinaia di video presenti sul canale YouTube di Microsoft 365 potremmo notare come Graph si presenti sempre con le stesse tre parole, e non parlo di quelle, non provateci nemmeno.

Microsoft Graph infatti viene descritto sempre come il punto di accesso singolo, sicuro e unificato per tutte le vostre esigenze da sviluppatori in ambiente Microsoft.

Ma cosa significa? Vuol forse dire che chiunque non sviluppi con o su prodotti Microsoft è tagliato fuori da questi strumenti?

Assolutamente no. La grande casa finestrata di fatti ha costruito uno dei prodotti unificatori più belli e utili di sempre, rendendo fruibili i propri servizi con delle semplici chiamate HTTP ai propri servizi RESTful, permettendo l’integrazione con semplicità e in piena ottica microservices (o microfrontends, se iniziamo a parlare del toolkit o di SPFx, ma questo sarà per un’altra volta!)

Figura 1: Microsoft Graph overview

Microsoft Graph è quindi il gateway di accesso all’ecosistema dei dati e della business intelligence dei prodotti della suite office e non solo, fornendo un valido modello logico che potrete utilizzare per accedere alla gigantesca quantità di dati su Microsoft 365.

Questa nuova porta permetterà ai programmatori e alle organizzazioni di consumare con sicurezza la miriade di dati messi a disposizione da Graph per costruire applicazioni fatte su misura per voi o i vostri clienti. In tal senso, lo sviluppatore torna ad essere artigiano a tempo pieno e Microsoft fornitore di strumenti.

Lo so, lo so. Adesso che ve ne ho parlato non state più nella pelle e non vedete l’ora di mettere le vostre mani su una tastiera (necessariamente meccanica) per provare il prodotto. Beh, è semplice, basta andare su Graph Explorer.

Figura 2: Graph explorer entry page

Per chi di voi si sentisse poco anglofono, attualmente (inizio 2022) non è presente una versione localizzata di Graph Explorer quindi dovrete approfittare del traduttore offerto dal vostro Browser di fiducia. Come sempre sono a vostra disposizione laddove sorgessero dei dubbi e cercherò di aiutarvi. Sembra quasi la fine di una mail, ma non lo è!

Proseguiamo!

Come provare Microsoft Graph, introduzione a Explorer (non quell’Explorer)

Per provare Microsoft Graph possiamo scegliere due strade:

  1. Iniziare subito a smanettare con il codice ringraziando quelle meravigliose persone che scrivono documentazione fatta bene
  2. Avere una connessione a internet e collegarsi al sito di Graph Explorer

Noi siamo instancabilmente pro no-code e quindi scegliamo la seconda opzione. Ciò che ci troveremo davanti sarà una web application (scritta in React, per i più audaci) che ci permetterà di fare login con il nostro account d’organizzazione oppure un account personale Microsoft.

Figura 3: Microsoft Graph login screen

Dopo aver fatto login vedremo che il nostro account sarà mostrato sull’applicazione e potremo utilizzare Graph Explorer con dati di nostra proprietà e non della fantomatica società Contoso.

Figura 4: Microsoft Graph logged in user

La web application si divide in più aree ben definite. Quelle a cui daremo maggior risalto in questo articolo sono la parte di Sample Query, l’area di Input e l’area di Preview.

Come potete vedere dall’immagine sopra, l’applicativo ci permette di interagire con le sample query per fare delle richieste di prova. Queste richieste saranno a tutti gli effetti svolte sul Graph della nostra organizzazione, infatti, come vedremo nell’immagine successiva, GET My Profile restituirà dati appartenenti alla mia utenza.

Alcune richieste, soprattutto quelle basate sul verbo http POST, richiedono un corpo della richiesta (request body) accompagnatorio alla chiamata verso Microsoft Graph.

A prescindere dal buon fine o meno della richiesta, l’area di preview ci mostrerà i dati o l’errore generati dalla nostra interazione con l’applicativo.

Figura 5: Microsoft Graph query user profile

Se scorrerete la lunga lista di Sample Query, vi renderete conto della vera portata di Microsoft Graph, un vero e proprio collante per tutti i servizi di Microsoft 365. Penserete giustamente che un potere del genere debba essere gestito in maniera minuziosa e granulare. E di fatti non vi sbagliate.

 

Figura 6: Microsoft Graph admin consent

Gli esempi che Microsoft rende disponibili ci permettono, oltre ad interagire in tempo reale, anche di vedere quali sono i permessi necessari ad effettuare la richiesta e se questi permessi sono solamente lato utente o se un amministratore debba acconsentire all’utilizzo di uno o più endpoint.

Nell’immagine potete vedere una lista di permessi di cui avremmo bisogno (uno o più di uno) se volessimo effettuare la chiamata a GET My Profile.

Come muoversi da qui in poi

Abbiamo scoperto così tante cose che adesso non ci resta che provare con le nostre mani Microsoft Graph. L’unico limite è dato da noi stessi e dai nostri poteri di amministrazione.

Vi ringrazio per essere rimasti con me durante la lettura di questo articolo e vi invito a leggere il prossimo di questa serie che ha come argomento, rullo di tamburi, Microsoft Graph! In pieno stile Forrest Gump, andremo a vedere Graph così come Gump vedeva i gamberetti.

Se intanto non sapete cosa fare, potete trovare altri articoli sul mio blog personale 404answernotfound.eu, e potete trovarmi su Twitter e LinkedIn!