फ़ील्ड मास्क, एपीआई कॉलर के लिए उन फ़ील्ड की सूची बनाने का एक तरीका है जिन्हें अनुरोध के ज़रिए दिखाना या अपडेट करना चाहिए. FieldMask का इस्तेमाल करने से, एपीआई को ग़ैर-ज़रूरी काम से बचने में मदद मिलती है. साथ ही, इससे उसकी परफ़ॉर्मेंस भी बेहतर होती है. Google Docs API में, फ़ील्ड मास्क का इस्तेमाल, पढ़ने और अपडेट करने, दोनों तरीकों के लिए किया जाता है.
फ़ील्ड मास्क की मदद से पढ़ना
दस्तावेज़ बड़े हो सकते हैं और अक्सर आपको पढ़ने के अनुरोध से मिले Document
संसाधन के हर हिस्से की ज़रूरत नहीं होती. fields
यूआरएल पैरामीटर का इस्तेमाल करके, Docs API के रिस्पॉन्स में दिखाए जाने वाले डेटा को सीमित किया जा सकता है. बेहतर परफ़ॉर्मेंस के लिए, जवाब में सिर्फ़ उन फ़ील्ड की जानकारी दें जो आपके लिए ज़रूरी हैं.
फ़ील्ड पैरामीटर का फ़ॉर्मैट, FieldMask के JSON एन्कोडिंग जैसा ही होता है. आसान शब्दों में कहें, तो एक से ज़्यादा फ़ील्ड को कॉमा से अलग किया जाता है और सबफ़ील्ड को बिंदु से अलग किया जाता है. फ़ील्ड के नाम camelCase या separated_by_underscores में दिए जा सकते हैं. सुविधा के लिए, एक ही तरह के कई सबफ़ील्ड को ब्रैकेट में रखा जा सकता है.
यहां दिए गए documents.get
अनुरोध के उदाहरण में, title,tabs(documentTab(body.content(paragraph))),revisionId
के फ़ील्ड मास्क का इस्तेमाल किया गया है. इससे दस्तावेज़ के title
, Body
ऑब्जेक्ट के Paragraph
(सभी टैब से) और दस्तावेज़ के revisionId
को फ़ेच किया जा सकता है:
GET https://docs.googleapis.com/v1/documents/documentId ?fields=title,tabs(documentTab(body.content(paragraph))),revisionId
इस मेथड कॉल का रिस्पॉन्स, एक Document
ऑब्जेक्ट होता है. इसमें फ़ील्ड मास्क में अनुरोध किए गए कॉम्पोनेंट होते हैं:
{ "title": "", "revisionId": "
TITLE ", "tabs": [ { "documentTab": { "body": { "content": [ {}, { "paragraph": { "elements": [ { "startIndex": 1, "endIndex": 59, "textRun": { "content": "
REVISION_ID ", "textStyle": {} } } ], "paragraphStyle": { "namedStyleType": "NORMAL_TEXT", "direction": "LEFT_TO_RIGHT" } } } ] } } } ] }
CONTENT
फ़ील्ड मास्क की मदद से अपडेट करना
कभी-कभी, आपको किसी ऑब्जेक्ट के कुछ फ़ील्ड को अपडेट करना होता है, जबकि अन्य फ़ील्ड में कोई बदलाव नहीं करना होता. documents.batchUpdate
ऑपरेशन में अपडेट के अनुरोध, एपीआई को यह बताने के लिए फ़ील्ड मास्क का इस्तेमाल करते हैं कि किन फ़ील्ड में बदलाव किया जा रहा है. अपडेट करने का अनुरोध, उन फ़ील्ड को अनदेखा कर देता है जो फ़ील्ड मास्क में नहीं बताए गए हैं. साथ ही, उन फ़ील्ड की मौजूदा वैल्यू में कोई बदलाव नहीं करता.
किसी फ़ील्ड को अनसेट करने के लिए, उसे अपडेट किए गए मैसेज में शामिल न करें. इसके बजाय, फ़ील्ड को मास्क में जोड़ें. इससे, फ़ील्ड में पहले से मौजूद वैल्यू हट जाती है.
फ़ील्ड मास्क को अपडेट करने और पढ़ने के लिए सिंटैक्स एक ही होता है.
का इस्तेमाल करने से बचें.नीचे दिए गए उदाहरण में, range
5–20 के बीच "Google Docs API" शब्दों को बोल्ड करने के लिए, UpdateTextStyleRequest
का इस्तेमाल किया गया है:
POST https://docs.googleapis.com/v1/documents/documentId :batchUpdate
{ "title": "", "revisionId": "
TITLE ", "suggestionsViewMode": "SUGGESTIONS_INLINE", "documentId": "
REVISION_ID ", "tabs": [ { "documentTab": { "body": { "content": [ { "endIndex": 1, "sectionBreak": { "sectionStyle": { "columnSeparatorStyle": "NONE", "contentDirection": "LEFT_TO_RIGHT", "sectionType": "CONTINUOUS" } } }, { "startIndex": 1, "endIndex": 59, "paragraph": { "elements": [ { "startIndex": 1, "endIndex": 5, "textRun": { "content": "
DOCUMENT_ID ", "textStyle": {} } }, { "startIndex": 5, "endIndex": 20, "textRun": { "content": "
CONTENT ", "textStyle": { "bold": true } } }, { "startIndex": 20, "endIndex": 59, "textRun": { "content": "
CONTENT ", "textStyle": {} } } ], "paragraphStyle": { "namedStyleType": "NORMAL_TEXT", "direction": "LEFT_TO_RIGHT" } } } ] }, { ... // style details }, } } ], }
CONTENT