Drive API v2 和 v3 比較指南

最新的 Google Drive API 版本為 v3。第 3 版的成效更好,因為 搜尋只會傳回部分欄位除非需要,否則請使用目前版本 v2 集合。如果您使用的是第 2 版,請考慮 遷移至 v3如要進行遷移,請參閱「遷移至 Drive API v3」一文。如需版本差異的完整清單,請參閱 Drive API v2 和 v3 的比較 參考資料

如要繼續使用第 2 版,請參閱《Drive API v2 指南》修訂條款,瞭解第 3 版中的操作方法。 第 2 版開發人員的指南皆須經過修訂。

如要進一步瞭解 Drive API v3 改善項目,請觀看 Google 工程師的影片,探討新的 API 設計。

V3 改善項目

為提升效能並降低 API 行為複雜度,第 3 版提供了下列功能: 與舊版 API 相比的改善項目:

  • 根據預設,檔案和共用雲端硬碟的搜尋內容不會傳回完整資源。 系統只會傳回一部分常用欄位如要進一步瞭解 fields,請參閱 files.list 方法 和 drives.list 方法。
  • 現在,傳回回應的所有方法現在都需要 fields 參數。如需所有需要 fields 的方法清單,請參閱 Drive API 參考資料
  • 已移除特徵重複的資源。以下提供一些例子:
    • files.list 方法與 ChildrenParents 集合,因此會從 v3 中移除。
    • 已移除 Realtime.* 方法。
  • 在預設情況下,系統不會在搜尋中傳回應用程式資料。在第 2 版中,您可以將 drive.appdata 範圍,並且會從 files.list 傳回應用程式資料 方法,以及 changes.list ,但會降低效能。在第 3 版中,您設定了 drive.appdata 範圍 並將查詢參數 spaces=appDataFolder 設為請求 應用程式資料
  • 所有更新作業都會使用 PATCH,而非 PUT。
  • 如要匯出 Google 文件,請使用 files.export 方法,增加圍繞地圖邊緣的邊框間距。
  • changes.list 方法的行為有所不同。請不要變更 ID,改用 不透明頁面符記如要輪詢變更集合,請先呼叫 changes.getStartPageToken 方法。如果是後續查詢,changes.list 方法會傳回 newStartPageToken 值。
  • Update 方法現在會拒絕指定無法寫入欄位的要求。
  • 其中 v2 exportFormatsimportFormats 欄位 about 資源是 支援的匯入或匯出格式。在第 3 版中,則是 MIME 類型對應 可能會指定套用至所有支援的匯入或匯出目標
  • v2 appdataappfolder 別名現在在 v3 中為 appDataFolder
  • properties 資源已從 v3 中移除。 files 資源含有 properties 欄位 包含真實鍵/值組合properties 欄位含有公開項目 ,且 appProperties 欄位包含私有屬性,因此 則不需要顯示瀏覽權限欄位
  • files 資源中的 modifiedTime 欄位最後會更新 有人修改了檔案。在第 2 版中,modifiedDate 欄位只能變動 如果設定 setModifiedDate 欄位的話,就會發生更新。
  • files 資源中的 viewedByMeTime 欄位不會自動 更新。
  • 如要匯入 Google 文件格式,請設定適當的目標mimeType 。在第 2 版中,您需要設定 ?convert=true
  • 如果系統不支援該格式,匯入作業會傳回 400 錯誤。
  • 檢視者和加註者無法查看權限。
  • 已移除權限的 me 別名。
  • 部分功能可在要求資源中使用, 但可做為請求參數使用例如:
    • 在第 2 版中,您可以使用 children.delete 從 父項資料夾
    • 在第 3 版中,您針對子節點使用 files.update, 網址的 ?removeParents=parent_id

其他差異

欄位和參數名稱在 v3 中不同。例如:

  • name 屬性會取代 files 資源中的 title
  • Time 是所有日期和時間欄位的後置字串,而非 Date
  • 清單作業不使用 items 欄位來包含結果集。 資源類型提供結果欄位 (例如 fileschanges)。