מדריך להשוואה של Drive API v2 ו-v3

הגרסה האחרונה של Google Drive API היא גרסה 3. הביצועים בגרסה 3 טובים יותר כי החיפושים מחזירים רק קבוצת משנה של שדות. צריך להשתמש בגרסה הנוכחית, אלא אם אתם צריכים את אוסף v2. אם אתם משתמשים בגרסה 2, כדאי לשקול מעבר לגרסה 3. הוראות למיגרציה מופיעות במאמר מעבר ל-Drive API v3. רשימה מלאה של ההבדלים בין הגרסאות מופיעה בהשוואה בין Drive API גרסה 2 לגרסה 3.

אם אתם רוצים להמשיך להשתמש בגרסה 2, תוכלו לעיין במדריך לתיקון Drive API v2 כדי ללמוד איך מפתחים שמשתמשים בגרסה 2 צריכים לתקן חלק מההוראות במדריכים לגרסה 3.

כדי לקבל מידע נוסף על השיפורים ב-Drive API v3, אפשר לצפות בסרטון הבא שבו מהנדסי Google מסבירים על העיצוב החדש של ה-API.

שיפורים בגרסה 3

כדי לשפר את הביצועים ולצמצם את המורכבות של התנהגות ה-API, גרסה 3 כוללת את השיפורים הבאים לעומת גרסת ה-API הקודמת:

  • חיפושים של קבצים ותיקיות באחסון שיתופי לא מחזירים משאבים מלאים כברירת מחדל, אלא רק קבוצת משנה של שדות נפוצים. פרטים נוספים על fields זמינים בשיטה files.list ובשיטה drives.list.
  • כמעט בכל השיטות שבהן מוחזרת תשובה נדרש עכשיו הפרמטר fields. רשימה של כל השיטות שדורשות fields זמינה ב הפניית Drive API.
  • הוסרו משאבים עם יכולות כפולות. דוגמאות:
    • השיטה files.list מבצעת את אותה פעולה כמו האוספים Children ו-Parents, ולכן הם הוסרו מגרסה 3.
    • השיטות Realtime.* הוסרו.
  • כברירת מחדל, נתוני האפליקציה לא מוחזרים בחיפושים. בגרסה 2, אפשר להגדיר את ההיקף drive.appdata, והיא מחזירה נתוני אפליקציה מהשיטה files.list ומהשיטה changes.list, אבל הביצועים איטיים יותר. בגרסה 3, מגדירים את ההיקף drive.appdata ומגדירים גם את פרמטר השאילתה spaces=appDataFolder כדי לבקש נתוני אפליקציה.
  • כל פעולות העדכון משתמשות ב-PATCH במקום ב-PUT.
  • כדי לייצא מסמכי Google, משתמשים ב-method‏ files.export.
  • ההתנהגות של השיטה changes.list שונה. במקום מזהי שינויים, צריך להשתמש באסימוני דפים אטומים. כדי לבדוק את אוסף השינויים, קודם צריך לקרוא לשיטה changes.getStartPageToken כדי לקבל את הערך הראשוני. בשביל שאילתות עוקבות, השיטה changes.list מחזירה את הערך newStartPageToken.
  • שיטות העדכון דוחות עכשיו בקשות שמציינות שדות שאי אפשר לכתוב בהם.
  • השדות v2 exportFormats ו-importFormats במשאב about הם רשימות של פורמטים מותרים לייבוא או לייצוא. בגרסה 3, אלה מיפויים של סוגי MIME של יעדים אפשריים לכל הייבוא או הייצוא הנתמכים.
  • הכתובות החלופיות appdata ו-appfolder בגרסה 2 הן עכשיו appDataFolder בגרסה 3.
  • המשאב properties הוסר מגרסה 3. למשאב files יש שדה properties שמכיל צמדי מפתח/ערך אמיתיים. השדה properties מכיל מאפיינים ציבוריים, והשדה appProperties מכיל מאפיינים פרטיים, ולכן לא צריך את שדה החשיפה.
  • השדה modifiedTime במשאב files מתעדכן בפעם האחרונה שמישהו שינה את הקובץ. בגרסה 2, השדה modifiedDate היה ניתן לשינוי רק בעדכון אם הגדרתם את השדה setModifiedDate.
  • השדה viewedByMeTime במשאב files לא מתעדכן באופן אוטומטי.
  • כדי לייבא פורמטים של Google Docs, מגדירים את היעד המתאים mimeType בגוף המשאב. בגרסה 2, הגדרתם את ?convert=true.
  • פעולות ייבוא מחזירות שגיאה 400 אם הפורמט לא נתמך.
  • בעלי הרשאת קריאה ובעלי הרשאת תגובה לא יכולים לראות את ההרשאות.
  • הכינוי me להרשאות יוסר.
  • חלק מהפונקציות היו זמינות כחלק ממשאב הבקשה, אבל הן זמינות עכשיו כפרמטר בקשה. לדוגמה:
    • בגרסה 2, אפשר להשתמש ב-children.delete כדי להסיר קובץ צאצא מתיקיית הורה.
    • בגרסה 3, משתמשים ב-files.update בפריט הילד עם ?removeParents=parent_id בכתובת ה-URL.

הבדלים אחרים

השדות ושמות הפרמטרים שונים בגרסה 3. הנה כמה דוגמאות:

  • המאפיין name מחליף את המאפיין title במשאב files.
  • Time הוא הסיומת של כל שדות התאריך והשעה במקום Date.
  • בפעולות של רשימה לא נעשה שימוש בשדה items כדי להכיל את קבוצת התוצאות. סוג המשאב מספק שדה לתוצאות (כמו files או changes).