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

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

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

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

V3 में किए गए सुधार

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

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

अन्य अंतर

v3 में फ़ील्ड और पैरामीटर के नाम अलग-अलग होते हैं. कुछ उदाहरण ये हैं:

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