इस दस्तावेज़ में, एपीआई कॉल को एक साथ बैच करने का तरीका बताया गया है. इससे, करने के लिए आपके क्लाइंट के बीच ज़रूरी कनेक्शन होते हैं. एक साथ कई अनुरोध भेजने से, नेटवर्क राउंड ट्रिप कम हो जाते हैं और थ्रूपुट बढ़ जाता है. इससे ऐप्लिकेशन की परफ़ॉर्मेंस बेहतर होती है.
खास जानकारी
आपका क्लाइंट हर कनेक्शन, ओवरहेड की एक तय रकम से नतीजे देता है. Google Docs API, एक साथ कई बैच बनाने की सुविधा देता है, ताकि आपके क्लाइंट एक से ज़्यादा पा सकें अनुरोध के लिए ऑब्जेक्ट, जिनमें से हर एक करने के लिए एक ही तरह के अनुरोध के बारे में बताता है, को एक बैच अनुरोध में बदल देता है. एक साथ कई अनुरोध करने पर, परफ़ॉर्मेंस बेहतर हो सकती है. इसके लिए: कई सबअनुरोधों को जोड़कर सर्वर को एक कॉल करें, ताकि डेटा हासिल किया जा सके एक ही जवाब मिला.
हम उपयोगकर्ताओं को सलाह देते हैं कि वे कई अनुरोधों को हमेशा एक साथ इकट्ठा करें. यहां कुछ उन स्थितियों के उदाहरण, जहां एक साथ कई बैच बनाने की सुविधा का इस्तेमाल किया जा सकता है:
- आपने अभी-अभी एपीआई का इस्तेमाल करना शुरू किया है और आपके पास अपलोड करने के लिए बहुत सारा डेटा है.
- आपको कई फ़ाइलों पर मेटाडेटा या प्रॉपर्टी, जैसे कि फ़ॉर्मैटिंग को अपडेट करना होगा ऑब्जेक्ट हैं.
- आपको कई ऑब्जेक्ट मिटाने होंगे.
सीमाएं, अनुमति, और डिपेंडेंसी से जुड़ी ज़रूरी बातें
बैच अपडेट करते समय ध्यान रखने लायक अन्य आइटम की सूची यहां दी गई है:
- बैच में किए जाने वाले हर अनुरोध को एक एपीआई के तौर पर गिना जाता है. इसमें सभी सब-अनुरोध भी शामिल होते हैं इस्तेमाल करने की सीमा के मुताबिक अनुरोध करें.
- बैच अनुरोध की एक बार पुष्टि की जाती है. पुष्टि करने की सिर्फ़ एक सुविधा लागू होती है अनुरोध में मौजूद सभी बैच अपडेट ऑब्जेक्ट में.
- सर्वर सब-अनुरोधों को उसी क्रम में प्रोसेस करता है जिस क्रम में वे एक साथ कई अनुरोध करने की सुविधा मिलती है. बाद में सबमिट किए जाने वाले सब-अनुरोध, इस दौरान की गई कार्रवाइयों पर निर्भर करते हैं पिछले उप-अनुरोधों को स्वीकार नहीं किया गया है. उदाहरण के लिए, एक ही बैच अनुरोध में, उपयोगकर्ता ये काम कर सकते हैं: किसी मौजूदा दस्तावेज़ में टेक्स्ट डालें और फिर उसे शैली दें.
बैच की जानकारी
एक बैच अनुरोध में एक batchUpdate
तरीका कॉल शामिल है
में, दस्तावेज़ को जोड़ें और फिर उसे फ़ॉर्मैट करें.
हर अनुरोध को लागू किए जाने से पहले उसकी पुष्टि की जाती है. बैच में सभी सब-अनुरोध अपडेट अपने-आप लागू हो जाते हैं. इसका मतलब है कि अगर कोई अनुरोध मान्य नहीं है, तो पूरा अपडेट असफल होता है और इनमें से कोई भी (संभावित रूप से निर्भर) नहीं होता बदलाव लागू किए जाते हैं.
कुछ अनुरोध, लागू किए गए अनुरोधों के बारे में जानकारी के साथ जवाब देते हैं. उदाहरण के लिए, ऑब्जेक्ट जोड़ने के सभी बैच अपडेट के अनुरोध रिस्पॉन्स दिखाते हैं जोड़े गए नए ऑब्जेक्ट का मेटाडेटा ऐक्सेस किया जा सकता है, जैसे कि आईडी या टाइटल.
इस तरीके से, एक से ज़्यादा सब-रिक्वेस्ट वाले एक एपीआई बैच अपडेट रिक्वेस्ट का इस्तेमाल करके, पूरा Google दस्तावेज़ बनाया जा सकता है.
बैच रिक्वेस्ट का फ़ॉर्मैट
अनुरोध एक JSON अनुरोध होता है जिसमें कई,
एक ज़रूरी प्रॉपर्टी के साथ नेस्ट किए गए सब अनुरोध: requests
. कॉन्टेंट बनाने
अनुरोधों को अलग-अलग अनुरोधों की श्रेणी में बनाया जाता है. हर अनुरोध का इस्तेमाल,
JSON फ़ाइल, जिसका इस्तेमाल अनुरोध ऑब्जेक्ट को दिखाने और उसकी प्रॉपर्टी को शामिल करने के लिए किया जाता है.
एक साथ कई अनुरोधों के जवाब का फ़ॉर्मैट
बैच अनुरोध का response फ़ॉर्मैट अनुरोध प्रारूप में शामिल है. सर्वर के जवाब में एक ही जवाब का पूरा जवाब होता है रिस्पॉन्स ऑब्जेक्ट है.
मुख्य JSON ऑब्जेक्ट की प्रॉपर्टी का नाम replies
है. जवाब
एक कलेक्शन में दिखाए जाते हैं. एक लाइन में, किसी एक अनुरोध का हर जवाब दिखता है
आपका इंडेक्स क्रम, संबंधित अनुरोध से मेल खाता हो. कुछ अनुरोधों के पास कोई
और उस अरे इंडेक्स में कोई रिस्पॉन्स खाली है.
उदाहरण
नीचे दिया गया कोड सैंपल, Docs API की मदद से एक साथ कई बैच बनाने का तरीका दिखाता है.
अनुरोध
बैच रिक्वेस्ट के इस उदाहरण में, ये काम करने का तरीका बताया गया है:
"सभी को नमस्ते" शब्द डालें मौजूदा दस्तावेज़ के प्रारंभ में टेक्स्ट
1
में सेlocation
इंडेक्स को,InsertTextRequest
."नमस्ते" शब्द अपडेट करें इसका इस्तेमाल करके
UpdateTextStyleRequest
.startIndex
औरendIndex
, फ़ॉर्मैट किए गए टेक्स्ट काrange
तय करते हैं सेगमेंट.textStyle
का इस्तेमाल करके, फ़ॉन्ट स्टाइल को बोल्ड और कलर को नीला पर सेट करें शब्द "नमस्ते" बोलो.WriteControl
का इस्तेमाल करके फ़ील्ड में, यह कंट्रोल किया जा सकता है कि लिखने के अनुरोधों को कैसे एक्ज़ीक्यूट किया जाए. ज़्यादा के लिए जानकारी के लिए, WriteControl.
{ "requests":[ { "insertText":{ "location":{ "index":1, "tabId":TAB_ID }, "text":"Hello World" } }, { "updateTextStyle":{ "range":{ "startIndex":1, "endIndex":6 }, "textStyle":{ "bold":true, "foregroundColor":{ "color":{ "rgbColor":{ "blue":1 } } } }, "fields":"bold,foreground_color" } } ], "writeControl": { "requiredRevisionId": "REQUIRED_REVISION_ID" } }
TAB_ID और REQUIRED_REVISION_ID को इससे बदलें लिखने के अनुरोध वाले दस्तावेज़ का टैब आईडी और संशोधन आईडी इस पर लागू होता है.
जवाब
बैच रिस्पॉन्स का यह उदाहरण, इसमें यह जानकारी दिखाता है कि किस तरह से
बैच रिक्वेस्ट लागू किया गया. ऐसा नहीं है
InsertTextRequest
या
UpdateTextStyleRequest
कोई रिस्पॉन्स मौजूद होता है, इसलिए [0] और [1] अरे के इंडेक्स वैल्यू में
में खाली कर्ली ब्रैकेट भी होते हैं. बैच रिक्वेस्ट, WriteControl
ऑब्जेक्ट दिखाती है,
जिससे पता चलता है कि अनुरोधों को कैसे एक्ज़ीक्यूट किया गया.
{ "replies":[ {}, {} ], "writeControl":{ "requiredRevisionId":`REQUIRED_REVISION_ID` }, "documentId":`DOCUMENT_ID` }