Microsoft Graph’ın gelişmiş kullanımı

Geliştiriciler için Azure Güvenliğini Uygulama

Anushika Agarwal

Cloud Data Engineer

Benzetim: market seferleri

  • Market poşetlerini küçük seferlerle taşı

  • Daha hafif, daha hızlı, daha güvenli

Market seferleri

Geliştiriciler için Azure Güvenliğini Uygulama

Sayfalandırma

  • Büyük sonuçları küçük sayfalara böler
  • Daha hızlı yanıt, daha az zaman aşımı
  • Sonraki sayfalar nasıl alınır?

Sayfalandırma

Geliştiriciler için Azure Güvenliğini Uygulama

Örnek: PeopleSphere sayfalandırma kullanımı

  • Binlerce çalışan kaydı yönetilebilir sayfalarla alınır

Örnek - PeopleSphere Sayfalandırma

Geliştiriciler için Azure Güvenliğini Uygulama

Sunucu tarafı sayfalandırma

  • Hizmet, varsayılan sayfa boyutu seçer
  • İstemci boyutu belirtmez
  • Örnek
    • GET /v1.0/users : (varsayılan) Sayfa başına 100 öğe döner

Sunucu Tarafı Sayfalandırma

Geliştiriciler için Azure Güvenliğini Uygulama

İstemci tarafı sayfalandırma

  • İstemci, sayfa başına dönecek öğe sayısını belirtir

İstemci Tarafı Sayfalandırma

Geliştiriciler için Azure Güvenliğini Uygulama

Sayfalandırma için sorgu parametreleri

  • Sorgu parametreleri

    • $top: sayfa başına öğe sayısı

    Sorgu Parametreleri - Top

  • $skip: atlama; ilk N öğeden sonra başla

    Sorgu Parametreleri - Skip

Geliştiriciler için Azure Güvenliğini Uygulama

İstemci tarafı sayfalandırma örneği

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

İstemci Tarafı Sayfalandırma

Geliştiriciler için Azure Güvenliğini Uygulama

Toplu istek benzetimi: çevrimiçi alışveriş sepeti

  • Bir sepette birden çok öğe
  • Tek ödeme, tek fiş

Benzetim - Çevrimiçi alışveriş sepeti

Geliştiriciler için Azure Güvenliğini Uygulama

Toplu istek (Batching)

  • Birden çok Graph isteğini tek bir HTTP çağrısında birleştir
  • Tek yük -> tek yanıt, tüm sonuçlar birlikte

  • Yararları

    • Daha az gidiş-dönüş, daha düşük gecikme
    • Panolar için ideal
  • Sınır

    • Her topluda en fazla 20 istek

Toplu işleme

Geliştiriciler için Azure Güvenliğini Uygulama

Toplu istek uç noktası

  • Uç nokta

    • Yöntem: POST
    • Uç nokta:https://graph.microsoft.com/v1.0/$batch
  • users gibi belirli bir kaynak yerine $batch

Toplu istek uç noktası

Geliştiriciler için Azure Güvenliğini Uygulama

Toplu istek gövdesi

  • Gövde bir JSON nesnesidir
  • Tek özellik içerir: requests
  • requests bir dizidir (en fazla 20 öğe)
{ "requests": 
   [ {
      "id": "1",
      "method": "GET",
      "url": "/me/memberOf"
    },
    {
      "id": "2",
      "method": "GET",
      "url": "/me/planner/tasks"
    } ]
}
Geliştiriciler için Azure Güvenliğini Uygulama

İstek öğeleri ve üstbilgiler

  • Her istek öğesi şunları gerektirir

    • id: yanıtla eşleştirilecek benzersiz etiket
    • method: (GET/POST/PATCH/DELETE)
    • url: göreli yol
  • Üstbilgiler: Content-Type: application/json

{ "requests": 
   [ {
      "id": "1",
      "method": "GET",
      "url": "/me/memberOf"
    },
    {
      "id": "2",
      "method": "GET",
      "url": "/me/planner/tasks"
    } ]
}
Geliştiriciler için Azure Güvenliğini Uygulama

Toplu yanıt

  • Her kayıt bir isteği temsil eder
{
  "responses": [
    {  "id": "1", 
        "status": 200, 
        "body": { "value": [/* ... */]}},
    { 
        "id": "2", 
        "status": 403, 
        "body": { "error": [/* ... */]}}
  ]
}

Geliştiriciler için Azure Güvenliğini Uygulama

Her yanıtta neler var

  • Her yanıt öğesi şunları içerir

    • id: özgün istekle eşleşir

    • status: o öğe için HTTP durumu

      • 200: OK
      • 403: Yasak
    • headers: (örn. Content-Type)

    • body: veri veya hata nesnesi

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

Geliştiriciler için Azure Güvenliğini Uygulama

Hadi pratik yapalım!

Geliştiriciler için Azure Güvenliğini Uygulama

Preparing Video For Download...