Microsoft Graph का एडवांस्ड उपयोग

डेवलपर्स के लिए Azure सुरक्षा लागू करें

Anushika Agarwal

Cloud Data Engineer

उपमा: किराना यात्राएँ

  • किराने का सामान कई छोटे चक्करों में ले जाएँ

  • हल्का, तेज, और सुरक्षित

Grocery trips

डेवलपर्स के लिए Azure सुरक्षा लागू करें

Pagination

  • बड़े परिणाम को छोटे पेजों में बाँटता है
  • तेज़ रिस्पॉन्स और कम टाइमआउट
  • अगले पेज कैसे लाएँ?
    • रिस्पॉन्स में कंटिन्यूएशन लिंक होता है: `@odata.nextLink`

Pagination

डेवलपर्स के लिए Azure सुरक्षा लागू करें

उदाहरण: PeopleSphere द्वारा Pagination

  • हजारों कर्मचारी रिकॉर्ड मैनेजेबल पेजों में प्राप्त होते हैं

Example - PeopleSphere Pagination

डेवलपर्स के लिए Azure सुरक्षा लागू करें

Server-side pagination

  • सर्विस एक डिफॉल्ट पेज साइज़ चुनती है
  • क्लाइंट साइज़ निर्दिष्ट नहीं करता
  • उदाहरण
    • GET /v1.0/users : (default) प्रति पेज 100 आइटम लौटाता है

Server-Side Pagination

डेवलपर्स के लिए Azure सुरक्षा लागू करें

Client-side pagination

  • क्लाइंट प्रति पेज लौटाए जाने वाले आइटम निर्दिष्ट करता है

Client-Side Pagination

डेवलपर्स के लिए Azure सुरक्षा लागू करें

Pagination के लिए क्वेरी पैरामीटर

  • Query Parameters

    • $top: प्रति पेज आइटम की संख्या.

    Query Parameters - Top

  • $skip: ऑफसेट; पहले N आइटम के बाद शुरू करें

    Query Parameters - Skip

डेवलपर्स के लिए Azure सुरक्षा लागू करें

Client-side pagination उदाहरण

  • उदाहरण:
    • https://graph.microsoft.com/v1.0/groups?$top=2

Client-Side Pagination

डेवलपर्स के लिए Azure सुरक्षा लागू करें

Batching उपमा: ऑनलाइन शॉपिंग कार्ट

  • कई आइटम एक कार्ट में
  • एक ही चेकआउट, एक रसीद

Analogy - Online shopping cart

डेवलपर्स के लिए Azure सुरक्षा लागू करें

Batching

  • कई Graph रिक्वेस्ट को एक HTTP कॉल में मिलाएँ
  • One payload -> one response में सभी परिणाम

  • फायदे

    • कम ट्रिप्स, कम लेटेंसी
    • डैशबोर्ड्स के लिए आदर्श.
  • सीमा

    • प्रति बैच अधिकतम 20 रिक्वेस्ट

Batching

डेवलपर्स के लिए Azure सुरक्षा लागू करें

Batch request endpoint

  • Endpoint

    • Method: POST
    • Endpoint:https://graph.microsoft.com/v1.0/$batch
  • users जैसे किसी specific resource की जगह $batch

Batch request endpoint

डेवलपर्स के लिए Azure सुरक्षा लागू करें

Batch request body

  • Body एक JSON ऑब्जेक्ट है
  • इसमें एक प्रॉपर्टी होती है: requests
  • requests एक array है (अधिकतम 20 आइटम)
{ "requests": 
   [ {
      "id": "1",
      "method": "GET",
      "url": "/me/memberOf"
    },
    {
      "id": "2",
      "method": "GET",
      "url": "/me/planner/tasks"
    } ]
}
डेवलपर्स के लिए Azure सुरक्षा लागू करें

Request आइटम और हेडर्स

  • हर request आइटम में चाहिए

    • id: रिस्पॉन्स से मिलाने के लिए यूनिक लेबल
    • method: (GET/POST/PATCH/DELETE)
    • url: relative path
  • Headers: Content-Type: application/json

{ "requests": 
   [ {
      "id": "1",
      "method": "GET",
      "url": "/me/memberOf"
    },
    {
      "id": "2",
      "method": "GET",
      "url": "/me/planner/tasks"
    } ]
}
डेवलपर्स के लिए Azure सुरक्षा लागू करें

Batch response

  • हर एंट्री एक रिक्वेस्ट दर्शाती है
{
  "responses": [
    {  "id": "1", 
        "status": 200, 
        "body": { "value": [/* ... */]}},
    { 
        "id": "2", 
        "status": 403, 
        "body": { "error": [/* ... */]}}
  ]
}

डेवलपर्स के लिए Azure सुरक्षा लागू करें

हर response में क्या होता है

  • हर response आइटम में होता है

    • id: ओरिजिनल रिक्वेस्ट से मेल खाता

    • status: उस आइटम का HTTP स्टेटस

      • 200: OK
      • 403: Forbidden
    • headers: (जैसे, Content-Type)

    • body: डेटा या error ऑब्जेक्ट

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

डेवलपर्स के लिए Azure सुरक्षा लागू करें

अभ्यास करते हैं!

डेवलपर्स के लिए Azure सुरक्षा लागू करें

Preparing Video For Download...