Drive API v2 और v3 की तुलना करने वाली गाइड

Google Drive API का सबसे नया वर्शन v3 है. वर्शन 3 में परफ़ॉर्मेंस बेहतर है, क्योंकि खोज नतीजों में सिर्फ़ फ़ील्ड का सबसेट दिखता है. अगर आपको v2 कलेक्शन की ज़रूरत नहीं है, तो मौजूदा वर्शन का इस्तेमाल करें. अगर आप v2 का इस्तेमाल कर रहे हैं, तो v3 पर माइग्रेट करें. माइग्रेट करने के लिए, Drive API v3 पर माइग्रेट करना लेख पढ़ें. वर्शन में अंतर की पूरी सूची देखने के लिए, Drive API v2 और v3 की तुलना करने वाला रेफ़रंस देखें.

अगर आपको v2 का इस्तेमाल जारी रखना है, तो Drive API v2 की गाइड संशोधन देखें. इससे आपको पता चलेगा कि v3 डेवलपर के लिए, v3 गाइड के कुछ निर्देशों में किस तरह बदलाव किए जाने चाहिए.

Drive API v3 को बेहतर बनाने के बारे में ज़्यादा जानने के लिए, Google के इंजीनियर का यह वीडियो देखें. इसमें एपीआई के नए डिज़ाइन पर चर्चा की गई है.

V3 में सुधार

परफ़ॉर्मेंस को ऑप्टिमाइज़ करने और एपीआई के काम करने के तरीके की जटिलता को कम करने के लिए, v3 में एपीआई के पिछले वर्शन से पहले ये सुधार किए गए हैं:

  • फ़ाइलों और शेयर की गई ड्राइव के लिए की गई खोजों में, डिफ़ॉल्ट रूप से पूरे संसाधन नहीं दिखते. आम तौर पर इस्तेमाल किए जाने वाले फ़ील्ड का सबसेट ही दिखता है. fields के बारे में ज़्यादा जानकारी के लिए, files.list तरीका और drives.list तरीका देखें.
  • अब रिस्पॉन्स देने वाले करीब-करीब सभी तरीकों के लिए, fields पैरामीटर की ज़रूरत होती है. जिन तरीकों के लिए fields की ज़रूरत है उनकी सूची के लिए, Drive API का रेफ़रंस देखें.
  • डुप्लीकेट क्षमताओं वाले संसाधनों को हटाया गया. कुछ उदाहरण:
    • files.list वाला तरीका वही काम करता है जो Children और Parents कलेक्शन में करता है. इसलिए, उन्हें v3 से हटा दिया जाता है.
    • Realtime.* तरीके हटा दिए गए हैं.
  • खोजों में ऐप्लिकेशन का डेटा, डिफ़ॉल्ट रूप से नहीं दिखता. वर्शन 2 में, drive.appdata का स्कोप सेट किया जा सकता है. यह files.list तरीके और changes.list तरीके से ऐप्लिकेशन का डेटा दिखाता है. हालांकि, इससे परफ़ॉर्मेंस धीमी हो जाती है. वर्शन 3 में, ऐप्लिकेशन डेटा का अनुरोध करने के लिए, drive.appdata का स्कोप और क्वेरी पैरामीटर spaces=appDataFolder को भी सेट किया जाता है.
  • सभी अपडेट की कार्रवाइयां PUT के बजाय PATCH का इस्तेमाल करती हैं.
  • Google दस्तावेज़ एक्सपोर्ट करने के लिए, files.export तरीके का इस्तेमाल करें.
  • changes.list का तरीका अलग है. आईडी बदलने के बजाय, ओपेक पेज टोकन का इस्तेमाल करें. बदलाव को इकट्ठा करने की प्रोसेस को पोल करने के लिए, पहले शुरुआती वैल्यू के लिए changes.getStartPageToken तरीके को कॉल करें. बाद की क्वेरी के लिए, changes.list तरीका newStartPageToken की वैल्यू दिखाता है.
  • अपडेट करने के तरीके अब उन अनुरोधों को अस्वीकार कर देते हैं जिनमें ऐसे फ़ील्ड शामिल होते हैं जिन्हें लिखा नहीं जा सकता.
  • about संसाधन में मौजूद v2 exportFormats और importFormats फ़ील्ड में, ऐसे इंपोर्ट या एक्सपोर्ट फ़ॉर्मैट की सूची होती है जिनकी अनुमति होती है. वर्शन 3 में, ये उन सभी इंपोर्ट या एक्सपोर्ट के लिए मुमकिन टारगेट के MIME टाइप मैप होते हैं जिनका इस्तेमाल किया जा सकता है.
  • v2 appdata और appfolder के उपनाम अब v3 में appDataFolder हो गए हैं.
  • properties संसाधन को v3 से हटा दिया गया है. files संसाधन में properties फ़ील्ड होता है, जिसमें सही की-वैल्यू पेयर होते हैं. properties फ़ील्ड में सार्वजनिक प्रॉपर्टी होती हैं और appProperties फ़ील्ड में निजी प्रॉपर्टी होती हैं. इसलिए, 'किसको दिखे' फ़ील्ड की ज़रूरत नहीं है.
  • किसी भी व्यक्ति ने फ़ाइल में पिछली बार बदलाव किए जाने पर files संसाधन में modifiedTime फ़ील्ड अपडेट हो जाता है. वर्शन 2 में, setModifiedDate फ़ील्ड को सेट करने पर ही modifiedDate फ़ील्ड को अपडेट पर बदला जा सकता था.
  • files संसाधन में viewedByMeTime फ़ील्ड अपने-आप अपडेट नहीं होता.
  • Google Docs फ़ॉर्मैट इंपोर्ट करने के लिए, आपको रिसॉर्स के मुख्य हिस्से में सही टारगेट mimeType सेट करना होता है. वर्शन 2 में, आपने ?convert=true सेट किया है.
  • अगर फ़ॉर्मैट काम नहीं करता, तो इंपोर्ट की कार्रवाइयां करने पर 400 गड़बड़ी दिखती है.
  • पाठक और टिप्पणी करने वाले लोग, अनुमतियां नहीं देख सकते.
  • अनुमतियों के लिए me उपनाम हटा दिया गया है.
  • कुछ सुविधाएं अनुरोध संसाधन के हिस्से के तौर पर उपलब्ध थीं, लेकिन वे इसके बजाय अनुरोध पैरामीटर के तौर पर उपलब्ध हैं. उदाहरण के लिए:
    • वर्शन 2 में, पैरंट फ़ोल्डर से चाइल्ड फ़ाइल को हटाने के लिए children.delete का इस्तेमाल किया जा सकता है.
    • वर्शन 3 में, उस चाइल्ड खाते के लिए files.update का इस्तेमाल किया जाता है जिसके यूआरएल में ?removeParents=parent_id है.

अन्य अंतर

वर्शन 3 में, फ़ील्ड और पैरामीटर के नाम अलग-अलग हैं. अपवाद के कुछ और उदाहरण यहां दिए हैं:

  • name प्रॉपर्टी, files संसाधन में title की जगह ले लेती है.
  • सभी तारीख और समय के फ़ील्ड के लिए, Date के बजाय Time सफ़िक्स है.
  • नतीजे का सेट शामिल करने के लिए, सूची की कार्रवाइयों में items फ़ील्ड का इस्तेमाल नहीं किया जाता. संसाधन प्रकार में नतीजों के लिए एक फ़ील्ड होता है (जैसे कि files या changes).