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

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

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

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

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

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

  • כברירת מחדל, חיפושים של קבצים ותיקיות אחסון שיתופי לא מחזירים משאבים מלאים, אלא רק של קבוצת משנה של שדות שנמצאים בשימוש נפוץ. פרטים נוספים על fields זמינים במאמר files.list ובשיטה drives.list.
  • כמעט כל השיטות שמחזירות תשובה מחייבות עכשיו את הפרמטר fields. רשימה של כל השיטות שמחייבות fields זמינה ב חומר העזר בנושא Drive API.
  • משאבים עם יכולות כפולות הוסרו. דוגמאות:
    • השיטה files.list מבצעת את אותה פונקציונליות כמו האוספים Children ו-Parents, ולכן הם מוסרים מ-v3.
    • השיטות Realtime.* הוסרו.
  • נתוני אפליקציות לא מוחזרים כברירת מחדל בחיפושים. ב-v2 אפשר להגדיר את ההיקף drive.appdata, והוא יחזיר נתוני אפליקציה מ-method files.list ומ-method changes.list, אבל הביצועים מאטים. בגרסה 3, מגדירים את ההיקף של drive.appdata וגם מגדירים את פרמטר השאילתה spaces=appDataFolder כך שיבקש נתוני אפליקציה.
  • כל פעולות העדכון משתמשות ב-PATCH במקום ב-PUT.
  • כדי לייצא מסמכים ב-Google Docs, משתמשים בשיטה files.export.
  • ההתנהגות של השיטה changes.list שונה. במקום לשנות מזהים, צריך להשתמש באסימונים אטומים של דפים. כדי לדגום את איסוף השינויים, קודם צריך לקרוא לשיטה changes.getStartPageToken כדי לקבל את הערך הראשוני. בשאילתות הבאות, השיטה changes.list מחזירה את הערך newStartPageToken.
  • שיטות עדכון דוחות עכשיו בקשות שמצוין בהן שדות שלא ניתנים לכתיבה.
  • השדות exportFormats ו-importFormats בגרסה 2 של המשאב 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).