बैच अनुरोध

इस दस्तावेज़ में, एक साथ कई एपीआई कॉल को बैच बनाने का तरीका बताया गया है. इससे, क्लाइंट के लिए बनाए जाने वाले कनेक्शन की संख्या को कम किया जा सकता है. एक साथ कई प्रयोग करने की सुविधा से, नेटवर्क की दोतरफ़ा यात्रा को कम करके और प्रवाह की क्षमता को बढ़ाकर, ऐप्लिकेशन की परफ़ॉर्मेंस को बेहतर बनाया जा सकता है.

खास जानकारी

हर कनेक्शन से आपका क्लाइंट, एक तय ओवरहेड बनाता है. Google Slides API में, एक साथ कई अनुरोध करने की सुविधा काम करती है. इसकी मदद से, आपके क्लाइंट एक अनुरोध के लिए एक से ज़्यादा ऑब्जेक्ट डाल सकते हैं. इनमें हर अनुरोध के लिए, एक साथ कई अनुरोध करने के लिए, एक तरह के अनुरोध के बारे में बताया जाता है. एक साथ कई अनुरोध करने की सुविधा से, कई सब-अनुरोधों को एक कॉल में मिलाकर सर्वर की परफ़ॉर्मेंस को बेहतर बनाया जा सकता है. इससे एक ही जवाब को वापस पाया जा सकता है.

हम उपयोगकर्ताओं को हमेशा कई अनुरोधों को एक साथ बैच में भेजने की सलाह देते हैं. यहां उन स्थितियों के कुछ उदाहरण दिए गए हैं जिनमें बैच बनाने की सुविधा का इस्तेमाल किया जा सकता है:

  • आपने अभी-अभी एपीआई का इस्तेमाल शुरू किया है और आपके पास अपलोड करने के लिए बहुत सारा डेटा है.
  • आपको कई ऑब्जेक्ट पर, मेटाडेटा या फ़ॉर्मैटिंग जैसी प्रॉपर्टी को अपडेट करना होगा.
  • आपको कई ऑब्जेक्ट मिटाने होंगे.

सीमाएं, अनुमति देने, और डिपेंडेंसी से जुड़ी ज़रूरी बातें

बैच अपडेट करने की सुविधा को लागू करने के लिए, इन आइटम की सूची यहां दी गई है:

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

बैच की जानकारी

एक साथ कई अनुरोध भेजने के अनुरोध में, batchUpdate के एक तरीके का कॉल शामिल होता है. इसमें कई सब-अनुरोध शामिल होते हैं. उदाहरण के लिए, किसी प्रज़ेंटेशन को जोड़ना और फिर उसे फ़ॉर्मैट करना.

हर अनुरोध को लागू करने से पहले उसकी पुष्टि की जाती है. बैच अपडेट के सभी सब-अनुरोध, अपने-आप लागू होते हैं. इसका मतलब है कि अगर कोई अनुरोध मान्य नहीं है, तो पूरा अपडेट पूरा नहीं हो पाता और कोई भी (संभावित तौर पर निर्भर) बदलाव लागू नहीं होता.

कुछ अनुरोधों में, लागू किए गए अनुरोधों की जानकारी शामिल होती है. उदाहरण के लिए, ऑब्जेक्ट जोड़ने के लिए बैच अपडेट करने के सभी अनुरोध, रिस्पॉन्स देते हैं. इससे, जोड़े गए नए ऑब्जेक्ट के मेटाडेटा को ऐक्सेस किया जा सकता है, जैसे कि आईडी या टाइटल.

इस तरीके से, कई सब-अनुरोधों का इस्तेमाल करके, पूरा Google दस्तावेज़ बनाया जा सकता है. इसके लिए, एपीआई के बैच अपडेट करने के एक ही अनुरोध का इस्तेमाल किया जा सकता है.

बैच अनुरोध का फ़ॉर्मैट

अनुरोध एक JSON अनुरोध होता है, जिसमें एक ज़रूरी प्रॉपर्टी के साथ, नेस्ट किए गए कई सब-अनुरोध शामिल होते हैं: requests. ये अनुरोध, अलग-अलग तरह के अनुरोधों के हिसाब से बनाए जाते हैं. हर अनुरोध, अनुरोध ऑब्जेक्ट और उसकी प्रॉपर्टी को शामिल करने के लिए JSON का इस्तेमाल करता है.

बैच रिस्पॉन्स का फ़ॉर्मैट

एक साथ कई अनुरोध करने के लिए response फ़ॉर्मैट, अनुरोध के फ़ॉर्मैट जैसा ही होता है. सर्वर के रिस्पॉन्स में, एक रिस्पॉन्स ऑब्जेक्ट का पूरा जवाब होता है.

मुख्य JSON ऑब्जेक्ट की प्रॉपर्टी का नाम replies है. ये रिस्पॉन्स, कलेक्शन में दिखाए जाते हैं. हर अनुरोध के लिए मिले जवाब, उसी इंडेक्स ऑर्डर में शामिल होते हैं जो संबंधित अनुरोध के लिए होता है. कुछ अनुरोधों का जवाब नहीं दिया जाता और उस अरे इंडेक्स पर जवाब नहीं दिया जाता.

उदाहरण

यहां दिया गया कोड सैंपल, Slides API की मदद से बैच बनाने की सुविधा के इस्तेमाल के बारे में बताता है.

अनुरोध

बैच अनुरोध का यह उदाहरण बताता है कि ये काम कैसे किए जाते हैं:

  • CreateSlideRequest तरीके का इस्तेमाल करके, किसी मौजूदा प्रज़ेंटेशन में presentations.pages संसाधन जोड़ें. इसमें 1 का insertionIndex इस्तेमाल करें.

  • CreateShapeRequest तरीके का इस्तेमाल करके, नई स्लाइड में TEXT_BOX का shapeType जोड़ें.

  • InsertTextRequest तरीके का इस्तेमाल करके, नए फ़ील्ड में "नमस्ते दुनिया" टेक्स्ट डालें.

{
   "requests":[
      {
         "createSlide":{
            "insertionIndex":1,
            "objectId":"newSlide"
         }
      },
      {
         "createShape":{
            "elementProperties":{
               "pageObjectId":"newSlide",
               "size":{
                  "height":{
                     "magnitude":50,
                     "unit":"PT"
                  },
                  "width":{
                     "magnitude":200,
                     "unit":"PT"
                  }
               }
            },
            "shapeType":"TEXT_BOX",
            "objectId":"newTextBox"
         }
      },
      {
         "insertText":{
            "objectId":"newTextBox",
            "text":"Hello World"
         }
      }
   ]
}

जवाब

बैच अनुरोध का यह उदाहरण इस बारे में जानकारी दिखाता है कि बैच अनुरोध में मौजूद हर सब-अनुरोध को कैसे लागू किया गया. ध्यान दें InsertTextRequest तरीका में कोई रिस्पॉन्स नहीं होता. इसलिए, [2] पर मौजूद अरे की इंडेक्स वैल्यू में खाली कर्ली ब्रैकेट होते हैं. एक साथ कई अनुरोध करने पर, WriteControl प्रॉपर्टी दिखती है. इससे पता चलता है कि लिखने के अनुरोधों को किस तरह एक्ज़ीक्यूट किया गया है.

{
   "requiredRevisionId": ID
   "presentationId": "",
   "replies":[
      {
         "createSlide":{
            "objectId":"newSlide"
         }
      },
      {
         "createShape":{
            "objectId":"newTextBox"
         }
      },
      {
         
      }
   ],
   "writeControl":{
      "requiredRevisionId": REVISION_ID
   }
}