Google Drive API-এর সর্বশেষ সংস্করণ হলো v3। v3-এর পারফরম্যান্স আরও ভালো, কারণ সার্চ করলে শুধুমাত্র ফিল্ডগুলোর একটি উপসেটই ফলাফল হিসেবে আসে। আপনার যদি v2 কালেকশনের প্রয়োজন না হয়, তবে বর্তমান সংস্করণটিই ব্যবহার করুন। আপনি যদি v2 ব্যবহার করেন, তবে v3-তে মাইগ্রেট করার কথা বিবেচনা করতে পারেন। মাইগ্রেট করার জন্য, 'Migrate to Drive API v3' দেখুন। সংস্করণগুলোর মধ্যে পার্থক্যের সম্পূর্ণ তালিকার জন্য, ' Drive API v2 and v3 comparison reference' দেখুন।
আপনি যদি v2 ব্যবহার চালিয়ে যেতে চান, তাহলে v3 গাইডের কিছু নির্দেশনা v2 ডেভেলপারদের জন্য কীভাবে সংশোধন করতে হবে তা জানতে 'Drive API v2 সংশোধনী নির্দেশিকা' দেখুন।
Drive API v3-এর উন্নতিগুলো সম্পর্কে আরও জানতে, আপনি গুগল ইঞ্জিনিয়ারদের তৈরি করা নিম্নলিখিত ভিডিওটি দেখতে পারেন, যেখানে তারা নতুন API ডিজাইনটি নিয়ে আলোচনা করেছেন।
V3 উন্নতি
পারফরম্যান্স অপ্টিমাইজ করতে এবং API আচরণের জটিলতা কমাতে, v3 পূর্ববর্তী API সংস্করণের তুলনায় নিম্নলিখিত উন্নতিগুলি প্রদান করে:
- ফাইল এবং শেয়ার করা ড্রাইভ অনুসন্ধান করলে ডিফল্টরূপে সম্পূর্ণ রিসোর্স ফেরত আসে না, শুধুমাত্র সচরাচর ব্যবহৃত ফিল্ডগুলোর একটি উপসেট ফেরত আসে।
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 ব্যবহৃত হয়।
- গুগল ডকুমেন্ট এক্সপোর্ট করতে
files.exportমেথডটি ব্যবহার করুন। -
changes.listমেথডটির আচরণ ভিন্ন। চেঞ্জ আইডি-র পরিবর্তে, অস্বচ্ছ পেজ টোকেন ব্যবহার করা হয়। চেঞ্জ কালেকশন পোল করার জন্য, প্রথমে প্রাথমিক মানটি পেতেchanges.getStartPageTokenমেথডটি কল করুন। পরবর্তী কোয়েরিগুলোর জন্য,changes.listমেথডটিnewStartPageTokenমানটি রিটার্ন করে। - আপডেট পদ্ধতিগুলো এখন সেইসব অনুরোধ প্রত্যাখ্যান করে যেগুলোতে অলিখনীয় ফিল্ড নির্দিষ্ট করা থাকে।
-
about' রিসোর্সের v2exportFormatsএবংimportFormatsফিল্ডগুলো হলো অনুমোদিত ইম্পোর্ট বা এক্সপোর্ট ফরম্যাটের তালিকা। v3-তে, এগুলো হলো সমস্ত সমর্থিত ইম্পোর্ট বা এক্সপোর্টের সম্ভাব্য টার্গেটগুলোর MIME টাইপ ম্যাপ। - v2-এর
appdataএবংappfolderঅ্যালিয়াসগুলো এখন v3-তেappDataFolderহয়েছে। - v3 থেকে
propertiesরিসোর্সটি সরিয়ে দেওয়া হয়েছে।filesরিসোর্সটিতেpropertiesফিল্ড রয়েছে, যাতে সঠিক কী-ভ্যালু পেয়ার থাকে।propertiesফিল্ডটিতে পাবলিক প্রপার্টি এবংappPropertiesফিল্ডটিতে প্রাইভেট প্রপার্টি থাকে, তাই visibility ফিল্ডটির প্রয়োজন নেই। -
filesরিসোর্সেরmodifiedTimeফিল্ডটি ফাইলটি শেষবার কখন পরিবর্তন করা হয়েছে, সেই সময় অনুযায়ী আপডেট হয়। v2-তে,modifiedDateফিল্ডটি আপডেটের সময় শুধুমাত্র তখনই পরিবর্তনযোগ্য ছিল, যদি আপনিsetModifiedDateফিল্ডটি সেট করতেন। -
filesরিসোর্সেরviewedByMeTimeফিল্ডটি স্বয়ংক্রিয়ভাবে আপডেট হয় না। - Google Docs ফরম্যাট ইম্পোর্ট করতে, আপনাকে রিসোর্স বডিতে উপযুক্ত টার্গেট
mimeType(target mimeType) সেট করতে হবে। v2-তে, আপনাকে?convert=trueসেট করতে হবে। - ফরম্যাটটি সমর্থিত না হলে ইম্পোর্ট অপারেশন 400 এরর দেখায়।
- পাঠক ও মন্তব্যকারীরা অনুমতি দেখতে পারেন না।
- অনুমতির জন্য ব্যবহৃত
meছদ্মনামটি সরিয়ে ফেলা হয়েছে। - কিছু কার্যকারিতা আগে রিকোয়েস্ট রিসোর্সের অংশ হিসেবে উপলব্ধ ছিল, কিন্তু এখন তা রিকোয়েস্ট প্যারামিটার হিসেবে পাওয়া যাচ্ছে। উদাহরণস্বরূপ:
- v2-তে, আপনি প্যারেন্ট ফোল্ডার থেকে কোনো চাইল্ড ফাইল মুছে ফেলার জন্য
children.deleteব্যবহার করতে পারেন। - v3-তে, চাইল্ডের উপর
files.updateব্যবহার করতে হয় এবং URL-এ `?removeParents=parent_id।
- v2-তে, আপনি প্যারেন্ট ফোল্ডার থেকে কোনো চাইল্ড ফাইল মুছে ফেলার জন্য
অন্যান্য পার্থক্য
v3-তে ফিল্ড এবং প্যারামিটারের নামগুলো ভিন্ন। কয়েকটি উদাহরণ হলো:
-
nameপ্রপার্টিটিfilesরিসোর্সেtitleপ্রতিস্থাপন করে। - সমস্ত তারিখ এবং সময় ফিল্ডের ক্ষেত্রে
Dateএর পরিবর্তেTimeসাফিক্স হিসেবে ব্যবহৃত হয়। - তালিকা অপারেশনগুলো ফলাফল সেট ধারণ করার জন্য
itemsফিল্ড ব্যবহার করে না। রিসোর্স টাইপটি ফলাফলের জন্য একটি ফিল্ড প্রদান করে (যেমনfilesবাchanges)।