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

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

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

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

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

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

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

अन्य अंतर

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

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