راهنمای مقایسه Drive API v2 و v3

آخرین نسخه Google Drive API نسخه ۳ است. عملکرد در نسخه ۳ بهتر است زیرا جستجوها فقط زیرمجموعه‌ای از فیلدها را برمی‌گردانند. از نسخه فعلی استفاده کنید مگر اینکه به مجموعه نسخه ۲ نیاز داشته باشید. اگر از نسخه ۲ استفاده می‌کنید، مهاجرت به نسخه ۳ را در نظر بگیرید. برای مهاجرت، به Migrate to Drive API نسخه ۳ مراجعه کنید. برای لیست کامل تفاوت‌های نسخه‌ها، به مرجع مقایسه Drive API نسخه ۲ و نسخه ۳ مراجعه کنید.

اگر می‌خواهید به استفاده از نسخه ۲ ادامه دهید، به راهنمای اصلاحیه‌ی Drive API نسخه ۲ مراجعه کنید تا بدانید که چگونه برخی از دستورالعمل‌های موجود در راهنماهای نسخه ۳ باید برای توسعه‌دهندگان نسخه ۲ اصلاح شوند.

برای کسب اطلاعات بیشتر در مورد بهبودهای Drive API نسخه ۳، می‌توانید ویدیوی زیر را که توسط مهندسان گوگل در مورد طراحی جدید API تهیه شده است، تماشا کنید.

بهبودهای نسخه ۳

برای بهینه‌سازی عملکرد و کاهش پیچیدگی رفتار API، نسخه ۳ این پیشرفت‌ها را نسبت به نسخه قبلی API ارائه می‌دهد:

  • جستجو برای فایل‌ها و درایوهای اشتراکی به طور پیش‌فرض کل منابع را برنمی‌گرداند، فقط زیرمجموعه‌ای از فیلدهای پرکاربرد برگردانده می‌شوند. برای جزئیات بیشتر در مورد fields ، به متدهای files.list و drives.list مراجعه کنید.
  • تقریباً تمام متدهایی که پاسخی برمی‌گردانند، اکنون به پارامتر fields نیاز دارند. برای فهرستی از تمام متدهایی که به fields نیاز دارند، به مرجع Drive API مراجعه کنید.
  • منابعی که قابلیت‌های تکراری داشتند حذف شدند. چند مثال:
    • متد files.list همان عملکرد مجموعه‌های Children و Parents را انجام می‌دهد، بنابراین آنها از نسخه ۳ حذف شده‌اند.
    • متدهای Realtime.* حذف شده‌اند.
  • داده‌های برنامه به طور پیش‌فرض در جستجوها بازگردانده نمی‌شوند. در نسخه ۲، می‌توانید دامنه drive.appdata را تنظیم کنید، و داده‌های برنامه را از متدهای files.list و changes.list برمی‌گرداند، اما عملکرد را کند می‌کند. در نسخه ۳، دامنه drive.appdata را تنظیم می‌کنید و همچنین پارامتر پرس‌وجو spaces=appDataFolder را برای درخواست داده‌های برنامه تنظیم می‌کنید.
  • تمام عملیات به‌روزرسانی به جای PUT از PATCH استفاده می‌کنند.
  • برای خروجی گرفتن از اسناد گوگل، از متد files.export استفاده کنید.
  • رفتار متد changes.list متفاوت است. به جای شناسه‌های تغییر، از توکن‌های صفحه‌ی مات استفاده کنید. برای نظرسنجی از مجموعه‌ی تغییرات، ابتدا متد changes.getStartPageToken را برای مقدار اولیه فراخوانی کنید. برای کوئری‌های بعدی، متد changes.list مقدار newStartPageToken را برمی‌گرداند.
  • متدهای به‌روزرسانی اکنون درخواست‌هایی را که فیلدهای غیرقابل نوشتن را مشخص می‌کنند، رد می‌کنند.
  • فیلدهای exportFormats و importFormats نسخه ۲ در منبع about ، فهرست‌هایی از قالب‌های مجاز برای واردات یا صادرات هستند. در نسخه ۳، آنها نقشه‌های نوع MIME از اهداف ممکن برای همه واردات یا صادرات پشتیبانی شده هستند.
  • نام‌های مستعار appdata و appfolder نسخه ۲، اکنون در نسخه ۳ appDataFolder شده‌اند.
  • منبع properties از نسخه ۳ حذف شده است. منبع files دارای فیلد properties است که شامل جفت‌های کلید-مقدار true است. فیلد properties شامل ویژگی‌های عمومی و فیلد appProperties شامل ویژگی‌های خصوصی است، بنابراین فیلد visibility مورد نیاز نیست.
  • فیلد modifiedTime در منبع files آخرین باری که کسی فایل را تغییر داده است، به‌روزرسانی می‌شود. در نسخه ۲، فیلد modifiedDate فقط در صورت تنظیم فیلد setModifiedDate در به‌روزرسانی قابل تغییر بود.
  • فیلد viewedByMeTime در منبع files به‌طور خودکار به‌روزرسانی نمی‌شود.
  • برای وارد کردن فرمت‌های Google Docs، باید mimeType هدف مناسب را در بدنه منبع تنظیم کنید. در نسخه ۲، باید ?convert=true تنظیم کنید.
  • اگر فرمت پشتیبانی نشود، عملیات ایمپورت خطای ۴۰۰ را برمی‌گرداند.
  • خوانندگان و نظردهندگان نمی‌توانند مجوزها را مشاهده کنند.
  • نام مستعار me برای دسترسی‌ها حذف شده است.
  • برخی از قابلیت‌ها به عنوان بخشی از منبع درخواست در دسترس بودند، اما در عوض به عنوان یک پارامتر درخواست در دسترس هستند. برای مثال:
    • در نسخه ۲، می‌توانید children.delete برای حذف یک فایل فرزند از پوشه والد استفاده کنید.
    • در نسخه ۳، شما files.update روی فرزند با ?removeParents=parent_id در URL استفاده می‌کنید.

تفاوت‌های دیگر

نام فیلدها و پارامترها در نسخه ۳ متفاوت است. برخی از مثال‌ها عبارتند از:

  • ویژگی name جایگزین title در منبع files می‌شود.
  • Time پسوندی برای همه فیلدهای تاریخ و زمان به جای Date است.
  • عملیات لیست از فیلد items برای در بر گرفتن مجموعه نتایج استفاده نمی‌کند. نوع منبع، فیلدی برای نتایج (مانند files یا changes ) فراهم می‌کند.