सबसे अच्छे नतीजों के लिए सबसे सही तरीके

Google Docs API का इस्तेमाल करते समय, आपको कई सिद्धांतों का पालन करना चाहिए. इन देशों या इलाकों में शामिल हैं:

  • परफ़ॉर्मेंस के लिए, पीछे की ओर बदलाव करें
  • साथ मिलकर काम करने का प्लान बनाएं
  • WriteControl फ़ील्ड का इस्तेमाल करके पक्का करें कि राज्य की जानकारी एक जैसी है

इन सेक्शन में इन सिद्धांतों के बारे में बताया गया है.

परफ़ॉर्मेंस के लिए, पीछे की ओर बदलाव करें

documents.batchUpdate तरीके का इस्तेमाल करके एक बार में अपने अनुरोधों को, इंडेक्स की जगह के घटते क्रम में क्रम में लगाएं. इससे, शामिल करने और मिटाने की वजह से इंडेक्स में हुए बदलावों को कैलकुलेट करने की ज़रूरत नहीं होती.

साथ मिलकर काम करने का प्लान बनाएं

दस्तावेज़ की स्थिति बदल सकती है. एक तरीके से दूसरे तरीके से किए जाने वाले कॉल के बीच, दूसरे सहयोगी दस्तावेज़ को अपडेट कर सकते हैं, जैसा कि इस डायग्राम में दिखाया गया है:

किसी दस्तावेज़ के दूसरे तरीके के कॉल में किस तरह बदलाव हो सकता है.

अगर आपके इंडेक्स गलत हैं, तो इसकी वजह से गड़बड़ियां हो सकती हैं. जब कई उपयोगकर्ता यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके किसी दस्तावेज़ में बदलाव करते हैं, तो Google Docs इस काम को पारदर्शी तरीके से करता है. हालांकि, एपीआई क्लाइंट के तौर पर आपके ऐप्लिकेशन को इसे मैनेज करना होगा. भले ही, आपको दस्तावेज़ पर साथ मिलकर काम करने की उम्मीद नहीं है, तब भी सुरक्षा के लिए प्रोग्राम बनाना और यह पक्का करना ज़रूरी है कि दस्तावेज़ की स्थिति एक जैसी ही रहे. जानकारी को एक जैसा बनाने के लिए, WriteControl सेक्शन को देखें.

WriteControl की मदद से स्थिति को एक जैसा बनाए रखना

किसी दस्तावेज़ को पढ़ने के बाद उसे अपडेट करने के बाद, documents.batchUpdate तरीके में WriteControl फ़ील्ड का इस्तेमाल करके, प्रतिस्पर्धा वाले बदलावों को मैनेज करने का तरीका कंट्रोल किया जा सकता है. WriteControl, इस बात का अधिकार देता है कि राइट अनुरोध कैसे एक्ज़ीक्यूट किए जाएं.

यहां इसका इस्तेमाल करने का तरीका बताया गया है:

  1. documents.get तरीके का इस्तेमाल करके दस्तावेज़ पाएं और दिए गए documents संसाधन से revisionId सेव करें.
  2. अपडेट के अनुरोध लिखें.
  3. एक वैकल्पिक WriteControl ऑब्जेक्ट शामिल करें. साथ ही, इन दो विकल्पों में से कोई एक शामिल करें:
    1. requiredRevisionId फ़ील्ड को उस दस्तावेज़ के revisionId पर सेट किया जाता है जिस पर लिखने का अनुरोध किया गया है. अगर एपीआई को पढ़ने के अनुरोध के बाद से दस्तावेज़ में बदलाव किया गया है, तो लिखने के अनुरोध को प्रोसेस नहीं किया जाता और यह गड़बड़ी दिखाता है.
    2. targetRevisionId फ़ील्ड को उस दस्तावेज़ के revisionId पर सेट किया गया है जिस पर लिखने का अनुरोध लागू किया गया है. अगर एपीआई को पढ़ने के अनुरोध के बाद से दस्तावेज़ में बदलाव किया गया है, तो लिखने के अनुरोध में किए गए बदलाव, सहयोगियों के बदलावों पर लागू होते हैं. लिखने के अनुरोध के नतीजे में, लिखने के अनुरोध में किए गए बदलाव और सहयोगी को दस्तावेज़ के नए बदलाव में, दोनों को शामिल किया जाता है. कॉन्टेंट मर्ज करने की ज़िम्मेदारी Docs सर्वर की होती है.

WriteControl का इस्तेमाल करके, एक साथ कई अनुरोध भेजने का तरीका जानने के लिए, बैच अनुरोध का यह उदाहरण देखें.