बैच अनुरोध

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

खास जानकारी

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

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

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

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

बैच अपडेट करते समय ध्यान रखने लायक अन्य आइटम की सूची यहां दी गई है:

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

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

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

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

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

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

बैच रिक्वेस्ट का फ़ॉर्मैट

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

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

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

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

उदाहरण

नीचे दिए गए उदाहरण में, Sheets API की मदद से एक साथ कई बैच बनाने का तरीका दिखाया गया है.

अनुरोध

बैच रिक्वेस्ट के इस उदाहरण में, ये काम करने का तरीका बताया गया है:

  • किसी मौजूदा स्प्रेडशीट में AddSheetRequest का इस्तेमाल करके, 12345 के sheetId वाली शीट जोड़ें.
  • UpdateCellsRequest का इस्तेमाल करके, सेल A1 से शुरू होने वाली नई शीट में डेटा जोड़ें.
  • नई शीट में namedRange या फ़िल्टर व्यू जोड़ें.

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

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

{
   "requests":[
      {
         "addSheet":{
            "properties":{
               "sheetId":123456
            }
         }
      },
      {
         "updateCells":{
            "start":{
               "sheetId":123456
            },
            "rows":[
               {
                  "values":[
                     {
                        "userEnteredValue":{
                           "stringValue":"hello"
                        }
                     }
                  ]
               },
               {
                  "values":[
                     {
                        "userEnteredValue":{
                           "stringValue":"world"
                        }
                     }
                  ]
               }
            ],
            "fields":"userEnteredValue"
         }
      },
      {
         "addNamedRange":{
            "namedRange":{
               "name":"newRange",
               "range":{
                  "sheetId":123456,
                  "endRowIndex":2
               }
            }
         }
      }
   ]
}

जवाब

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

"replies":[
   {
      "addSheet":{
         "properties":{
            "sheetId":123456,
            "title":"Sheet3",
            "index":2,
            "sheetType":"GRID",
            "gridProperties":{
               "rowCount":1000,
               "columnCount":26
            }
         }
      }
   },
   {
      
   },
   {
      "addNamedRange":{
         "namedRange":{
            "namedRangeId":"2104325079",
            "name":"newRange",
            "range":{
               "sheetId":123456,
               "startRowIndex":0,
               "endRowIndex":2,
               "startColumnIndex":0,
               "endColumnIndex":26
            }
         }
      }
   }
]