ড্রাইভ API v2 এবং v3 তুলনা নির্দেশিকা

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.listchanges.list মেথড থেকে অ্যাপ্লিকেশন ডেটা ফেরত দেয়, কিন্তু এটি পারফরম্যান্স কমিয়ে দেয়। v3-তে, অ্যাপ্লিকেশন ডেটা অনুরোধ করার জন্য আপনাকে drive.appdata স্কোপের পাশাপাশি spaces=appDataFolder কোয়েরি প্যারামিটারটিও সেট করতে হয়।
  • সকল আপডেট অপারেশনে PUT-এর পরিবর্তে PATCH ব্যবহৃত হয়।
  • গুগল ডকুমেন্ট এক্সপোর্ট করতে files.export মেথডটি ব্যবহার করুন।
  • changes.list মেথডটির আচরণ ভিন্ন। চেঞ্জ আইডি-র পরিবর্তে, অস্বচ্ছ পেজ টোকেন ব্যবহার করা হয়। চেঞ্জ কালেকশন পোল করার জন্য, প্রথমে প্রাথমিক মানটি পেতে changes.getStartPageToken মেথডটি কল করুন। পরবর্তী কোয়েরিগুলোর জন্য, changes.list মেথডটি newStartPageToken মানটি রিটার্ন করে।
  • আপডেট পদ্ধতিগুলো এখন সেইসব অনুরোধ প্রত্যাখ্যান করে যেগুলোতে অলিখনীয় ফিল্ড নির্দিষ্ট করা থাকে।
  • about ' রিসোর্সের v2 exportFormats এবং 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

অন্যান্য পার্থক্য

v3-তে ফিল্ড এবং প্যারামিটারের নামগুলো ভিন্ন। কয়েকটি উদাহরণ হলো:

  • name প্রপার্টিটি files রিসোর্সে title প্রতিস্থাপন করে।
  • সমস্ত তারিখ এবং সময় ফিল্ডের ক্ষেত্রে Date এর পরিবর্তে Time সাফিক্স হিসেবে ব্যবহৃত হয়।
  • তালিকা অপারেশনগুলো ফলাফল সেট ধারণ করার জন্য items ফিল্ড ব্যবহার করে না। রিসোর্স টাইপটি ফলাফলের জন্য একটি ফিল্ড প্রদান করে (যেমন files বা changes )।