Utilizare avansată a Microsoft Graph

Implementarea securității Azure pentru dezvoltatori

Anushika Agarwal

Cloud Data Engineer

Analogie: ture cu cumpărături

  • Transportați cumpărăturile în mai multe ture mici

  • Mai ușor, mai rapid și mai sigur

Ture cu cumpărături

Implementarea securității Azure pentru dezvoltatori

Paginare

  • Împarte rezultatele mari în pagini mai mici
  • Răspunsuri mai rapide și mai puține timeout-uri
  • Cum se accesează paginile următoare?

Paginare

Implementarea securității Azure pentru dezvoltatori

Exemplu: PeopleSphere cu paginare

  • Mii de înregistrări de angajați recuperate în pagini gestionabile

Exemplu - Paginare PeopleSphere

Implementarea securității Azure pentru dezvoltatori

Paginare côté server

  • Serviciul alege o dimensiune implicită a paginii
  • Clientul nu specifică dimensiunea
  • Exemplu
    • GET /v1.0/users : (implicit) Returnează 100 de elemente pe pagină

Paginare côté server

Implementarea securității Azure pentru dezvoltatori

Paginare côté client

  • Clientul specifică numărul de elemente returnate pe pagină

Paginare côté client

Implementarea securității Azure pentru dezvoltatori

Parametri de interogare pentru paginare

  • Parametri de interogare

    • $top: numărul de elemente pe pagină.

    Parametri de interogare - Top

  • $skip: decalaj; pornire după primele N elemente

    Parametri de interogare - Skip

Implementarea securității Azure pentru dezvoltatori

Exemplu de paginare côté client

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

Paginare côté client

Implementarea securității Azure pentru dezvoltatori

Analogie pentru grupare: coșul de cumpărături online

  • Mai multe articole într-un singur coș
  • O singură plată, o singură chitanță

Analogie - Coș de cumpărături online

Implementarea securității Azure pentru dezvoltatori

Grupare în lot

  • Combină mai multe cereri Graph într-un singur apel HTTP
  • Un payload -> un răspuns cu toate rezultatele

  • Avantaje

    • Mai puține cereri, latență redusă
    • Ideal pentru tablouri de bord.
  • Limită

    • Maximum 20 de cereri per lot

Grupare în lot

Implementarea securității Azure pentru dezvoltatori

Endpoint pentru cererea în lot

  • Endpoint

    • Metodă: POST
    • Endpoint:https://graph.microsoft.com/v1.0/$batch
  • $batch în loc de o resursă specifică precum users

Endpoint cerere în lot

Implementarea securității Azure pentru dezvoltatori

Corpul cererii în lot

  • Corpul este un obiect JSON
  • Conține o singură proprietate: requests
  • requests este un array (maximum 20 elemente)
{ "requests": 
   [ {
      "id": "1",
      "method": "GET",
      "url": "/me/memberOf"
    },
    {
      "id": "2",
      "method": "GET",
      "url": "/me/planner/tasks"
    } ]
}
Implementarea securității Azure pentru dezvoltatori

Elemente de cerere și anteturi

  • Fiecare element de cerere necesită

    • id: etichetă unică pentru corelarea răspunsului
    • method: (GET/POST/PATCH/DELETE)
    • url: cale relativă
  • Anteturi: Content-Type: application/json

{ "requests": 
   [ {
      "id": "1",
      "method": "GET",
      "url": "/me/memberOf"
    },
    {
      "id": "2",
      "method": "GET",
      "url": "/me/planner/tasks"
    } ]
}
Implementarea securității Azure pentru dezvoltatori

Răspunsul în lot

  • Fiecare intrare reprezintă o cerere
{
  "responses": [
    {  "id": "1", 
        "status": 200, 
        "body": { "value": [/* ... */]}},
    { 
        "id": "2", 
        "status": 403, 
        "body": { "error": [/* ... */]}}
  ]
}

Implementarea securității Azure pentru dezvoltatori

Conținutul fiecărui răspuns

  • Fiecare element de răspuns include

    • id: corespunde cererii originale

    • status: codul HTTP pentru acel element

      • 200: OK
      • 403: Interzis
    • headers: (ex., Content-Type)

    • body: date sau obiect de eroare

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

Implementarea securității Azure pentru dezvoltatori

Să exersăm!

Implementarea securității Azure pentru dezvoltatori

Preparing Video For Download...