Pokročilé použití Microsoft Graph

Implementace zabezpečení Azure pro vývojáře

Anushika Agarwal

Cloud Data Engineer

Analogie: výlety pro nákupy

  • Přenášejte nákupy ve více výletech

  • Lehčí, rychlejší a bezpečnější

Výlety pro nákupy

Implementace zabezpečení Azure pro vývojáře

Stránkování

  • Rozděluje velké výsledky na menší stránky
  • Rychlejší odpovědi a méně timeoutů
  • Jak se načítají další stránky?

Stránkování

Implementace zabezpečení Azure pro vývojáře

Příklad: PeopleSphere používá stránkování

  • Tisíce záznamů zaměstnanců načítané po zvladatelných stránkách

Příklad – stránkování PeopleSphere

Implementace zabezpečení Azure pro vývojáře

Stránkování na straně serveru

  • Služba zvolí výchozí velikost stránky
  • Klient velikost neurčuje
  • Příklad
    • GET /v1.0/users : (výchozí) Vrátí 100 položek na stránku

Stránkování na straně serveru

Implementace zabezpečení Azure pro vývojáře

Stránkování na straně klienta

  • Klient určuje počet položek na stránku

Stránkování na straně klienta

Implementace zabezpečení Azure pro vývojáře

Parametry dotazu pro stránkování

  • Parametry dotazu

    • $top: počet položek na stránku.

    Parametry dotazu – Top

  • $skip: posun; přeskočí prvních N položek

    Parametry dotazu – Skip

Implementace zabezpečení Azure pro vývojáře

Příklad stránkování na straně klienta

  • Příklad:
    • https://graph.microsoft.com/v1.0/groups?$top=2

Stránkování na straně klienta

Implementace zabezpečení Azure pro vývojáře

Analogie dávkování: online nákupní košík

  • Více položek v jednom košíku
  • Jedno zaplacení, jeden doklad

Analogie – online nákupní košík

Implementace zabezpečení Azure pro vývojáře

Dávkování

  • Více požadavků Graph v jednom HTTP volání
  • Jeden payload -> jedna odpověď se všemi výsledky

  • Výhody

    • Méně požadavků, nižší latence
    • Ideální pro řídicí panely.
  • Limit

    • Až 20 požadavků na dávku

Dávkování

Implementace zabezpečení Azure pro vývojáře

Endpoint dávkového požadavku

  • Endpoint

    • Metoda: POST
    • Endpoint:https://graph.microsoft.com/v1.0/$batch
  • $batch místo konkrétního zdroje, např. users

Endpoint dávkového požadavku

Implementace zabezpečení Azure pro vývojáře

Tělo dávkového požadavku

  • Tělo je objekt JSON
  • Obsahuje jednu vlastnost: requests
  • requests je pole (až 20 položek)
{ "requests": 
   [ {
      "id": "1",
      "method": "GET",
      "url": "/me/memberOf"
    },
    {
      "id": "2",
      "method": "GET",
      "url": "/me/planner/tasks"
    } ]
}
Implementace zabezpečení Azure pro vývojáře

Položky požadavku a hlavičky

  • Každá položka požadavku vyžaduje

    • id: jedinečný identifikátor pro párování odpovědi
    • method: (GET/POST/PATCH/DELETE)
    • url: relativní cesta
  • Hlavičky: Content-Type: application/json

{ "requests": 
   [ {
      "id": "1",
      "method": "GET",
      "url": "/me/memberOf"
    },
    {
      "id": "2",
      "method": "GET",
      "url": "/me/planner/tasks"
    } ]
}
Implementace zabezpečení Azure pro vývojáře

Dávková odpověď

  • Každá položka představuje jeden požadavek
{
  "responses": [
    {  "id": "1", 
        "status": 200, 
        "body": { "value": [/* ... */]}},
    { 
        "id": "2", 
        "status": 403, 
        "body": { "error": [/* ... */]}}
  ]
}

Implementace zabezpečení Azure pro vývojáře

Obsah každé položky odpovědi

  • Každá položka odpovědi obsahuje

    • id: odpovídá původnímu požadavku

    • status: HTTP stav dané položky

      • 200: OK
      • 403: Zakázáno
    • headers: (např. Content-Type)

    • body: data nebo objekt chyby

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

Implementace zabezpečení Azure pro vývojáře

Pojďme si procvičit!

Implementace zabezpečení Azure pro vývojáře

Preparing Video For Download...