Uso avanzato di Microsoft Graph

Implementare Azure Security per sviluppatori

Anushika Agarwal

Cloud Data Engineer

Analogia: viaggi per la spesa

  • Porta la spesa in più viaggi

  • Più leggero, veloce e sicuro

Viaggi con la spesa

Implementare Azure Security per sviluppatori

Paginazione

  • Divide i risultati grandi in pagine più piccole
  • Risposte più rapide e meno timeout
  • Come si recuperano le pagine successive?

Paginazione

Implementare Azure Security per sviluppatori

Esempio: PeopleSphere con paginazione

  • Migliaia di record dipendenti recuperati in pagine gestibili

Esempio - Paginazione PeopleSphere

Implementare Azure Security per sviluppatori

Paginazione lato server

  • Il servizio sceglie una dimensione pagina predefinita
  • Il client non specifica la dimensione
  • Esempio
    • GET /v1.0/users : (predefinito) Restituisce 100 elementi per pagina

Paginazione lato server

Implementare Azure Security per sviluppatori

Paginazione lato client

  • Il client indica gli elementi per pagina

Paginazione lato client

Implementare Azure Security per sviluppatori

Parametri di query per la paginazione

  • Parametri di query

    • $top: numero di elementi per pagina.

    Parametri di query - Top

  • $skip: offset; inizia dopo i primi N elementi

    Parametri di query - Skip

Implementare Azure Security per sviluppatori

Esempio di paginazione lato client

  • Esempio:
    • https://graph.microsoft.com/v1.0/groups?$top=2

Paginazione lato client

Implementare Azure Security per sviluppatori

Analogia batching: carrello online

  • Più articoli in un carrello
  • Un checkout, una ricevuta

Analogia - Carrello online

Implementare Azure Security per sviluppatori

Batching

  • Unisci più richieste Graph in una chiamata HTTP
  • Un payload -> una risposta con tutti i risultati

  • Vantaggi

    • Meno round-trip, latenza minore
    • Ideale per i dashboard.
  • Limite

    • Fino a 20 richieste per batch

Batching

Implementare Azure Security per sviluppatori

Endpoint della richiesta batch

  • Endpoint

    • Metodo: POST
    • Endpoint:https://graph.microsoft.com/v1.0/$batch
  • $batch al posto di una risorsa specifica come users

Endpoint richiesta batch

Implementare Azure Security per sviluppatori

Body della richiesta batch

  • Il body è un oggetto JSON
  • Contiene una proprietà: requests
  • requests è un array (fino a 20 elementi)
{ "requests": 
   [ {
      "id": "1",
      "method": "GET",
      "url": "/me/memberOf"
    },
    {
      "id": "2",
      "method": "GET",
      "url": "/me/planner/tasks"
    } ]
}
Implementare Azure Security per sviluppatori

Elementi della richiesta e header

  • Ogni elemento richiesta richiede

    • id: etichetta univoca per abbinare la risposta
    • method: (GET/POST/PATCH/DELETE)
    • url: percorso relativo
  • Header: Content-Type: application/json

{ "requests": 
   [ {
      "id": "1",
      "method": "GET",
      "url": "/me/memberOf"
    },
    {
      "id": "2",
      "method": "GET",
      "url": "/me/planner/tasks"
    } ]
}
Implementare Azure Security per sviluppatori

Risposta del batch

  • Ogni voce rappresenta una richiesta
{
  "responses": [
    {  "id": "1", 
        "status": 200, 
        "body": { "value": [/* ... */]}},
    { 
        "id": "2", 
        "status": 403, 
        "body": { "error": [/* ... */]}}
  ]
}

Implementare Azure Security per sviluppatori

Cosa include ogni risposta

  • Ogni elemento risposta include

    • id: corrisponde alla richiesta originale

    • status: stato HTTP per quell'elemento

      • 200: OK
      • 403: Forbidden
    • headers: (es. Content-Type)

    • body: dati o oggetto errore

{
  "responses": [
    {  "id": "1", 
        "status": 200, 
        "body": { "value": [/* ... */]}},
    { 
        "id": "2", 
        "status": 403, 
        "body": { "error": [/* ... */]}}
  ]
}

Implementare Azure Security per sviluppatori

Passons à la pratique !

Implementare Azure Security per sviluppatori

Preparing Video For Download...