फ़ील्ड मास्क का इस्तेमाल करना

फ़ील्ड मास्क, एपीआई कॉलर के लिए उन फ़ील्ड की सूची बनाने का एक तरीका है जिन्हें अनुरोध के ज़रिए दिखाना या अपडेट करना चाहिए. FieldMask का इस्तेमाल करने से, एपीआई को ग़ैर-ज़रूरी काम से बचने में मदद मिलती है. साथ ही, इससे उसकी परफ़ॉर्मेंस भी बेहतर होती है. Google Slides API में, फ़ील्ड मास्क का इस्तेमाल, डेटा पढ़ने और अपडेट करने, दोनों तरीकों के लिए किया जाता है.

फ़ील्ड मास्क की मदद से पढ़ना

प्रज़ेंटेशन बड़े हो सकते हैं और अक्सर आपको पढ़ने के अनुरोध से मिले Presentation संसाधन के हर हिस्से की ज़रूरत नहीं होती. fields यूआरएल पैरामीटर का इस्तेमाल करके, Slides API के रिस्पॉन्स में दिखने वाली जानकारी को सीमित किया जा सकता है. बेहतर परफ़ॉर्मेंस के लिए, जवाब में सिर्फ़ उन फ़ील्ड की जानकारी दें जो आपके लिए ज़रूरी हैं.

फ़ील्ड पैरामीटर का फ़ॉर्मैट, FieldMask के JSON एन्कोडिंग जैसा ही होता है. आसान शब्दों में कहें, तो एक से ज़्यादा फ़ील्ड को कॉमा से अलग किया जाता है और सबफ़ील्ड को बिंदु से अलग किया जाता है. फ़ील्ड के नाम camelCase या separated_by_underscores में दिए जा सकते हैं. सुविधा के लिए, एक ही तरह के कई सबफ़ील्ड को ब्रैकेट में रखा जा सकता है.

यहां दिए गए presentations.get अनुरोध के उदाहरण में, slides.pageElements(objectId,size,transform) के फ़ील्ड मास्क का इस्तेमाल किया गया है. इससे प्रज़ेंटेशन की सभी स्लाइड पर, pageElement ऑब्जेक्ट का सिर्फ़ ऑब्जेक्ट आईडी,Size, औरट्रांसफ़ॉर्म फ़ील्ड फ़ेच किया जा सकता है:

GET https://slides.googleapis.com/v1/presentations/presentationId?fields=slides.pageElements(objectId,size,transform)

इस मेथड कॉल का रिस्पॉन्स, एक Presentation ऑब्जेक्ट होता है. इसमें फ़ील्ड मास्क में अनुरोध किए गए कॉम्पोनेंट होते हैं:

{
  "slides": [
    {
      "pageElements": [
        {
          "objectId": "OBJECT_ID",
          "size": {
            "width": {
              "magnitude": 3000000,
              "unit": "EMU"
            },
            "height": {
              "magnitude": 3000000,
              "unit": "EMU"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1
            "translateX": 311708,
            "translateY": 744575,
            "unit": "EMU"
          }
        },
        {
          "objectId": "OBJECT_ID",
          "size": {
            "width": {
              "magnitude": 3000000,
              "unit": "EMU"
            },
            "height": {
              "magnitude": 3000000,
              "unit": "EMU"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1
            "translateX": 311700,
            "translateY": 2834125,
            "unit": "EMU"
          }
        }
     ]
    }
  ]
}

फ़ील्ड मास्क की मदद से अपडेट करना

कभी-कभी, आपको किसी ऑब्जेक्ट के कुछ फ़ील्ड को अपडेट करना होता है, जबकि अन्य फ़ील्ड में कोई बदलाव नहीं करना होता. presentations.batchUpdate ऑपरेशन में अपडेट के अनुरोध, एपीआई को यह बताने के लिए फ़ील्ड मास्क का इस्तेमाल करते हैं कि किन फ़ील्ड में बदलाव किया जा रहा है. अपडेट करने का अनुरोध, उन फ़ील्ड को अनदेखा कर देता है जो फ़ील्ड मास्क में नहीं बताए गए हैं. साथ ही, उन फ़ील्ड की मौजूदा वैल्यू में कोई बदलाव नहीं करता.

किसी फ़ील्ड को अनसेट करने के लिए, उसे अपडेट किए गए मैसेज में शामिल न करें. इसके बजाय, फ़ील्ड को मास्क में जोड़ें. इससे, फ़ील्ड में पहले से मौजूद वैल्यू हट जाती है.

फ़ील्ड मास्क को अपडेट करने और पढ़ने के लिए सिंटैक्स एक ही होता है.

का इस्तेमाल करने से बचें.

नीचे दिए गए उदाहरण में, किसी आकार के रंग को DARK1 थीम के रंग में बदलने और आकार की आउटलाइन को हटाने के लिए, UpdateShapePropertiesRequest का इस्तेमाल किया गया है:

POST https://slides.googleapis.com/v1/presentations/presentationId:batchUpdate
{
  "requests": [
    {
      "updateShapeProperties": {
        "objectId": OBJECT_ID,
        "shapeProperties": {
          "shapeBackgroundFill": {
            "solidFill": {
              "color": {
                "themeColor": "DARK1"
              }
            }
          }
        },
        "fields": "shapeBackgroundFill.solidFill.color,outline"
      }
    }
  ]
}