最新的 Google Drive API 版本是 v3。而 v3 的性能则更好,因为搜索只会返回一部分字段。除非您需要 v2 集合,否则请使用当前版本。如果您使用的是 v2,请考虑迁移到 v3。如需进行迁移,请参阅迁移到 Drive API v3。如需查看版本差异的完整列表,请参阅 Drive API v2 和 v3 比较参考。
如果您想继续使用 v2,请参阅 Guide to Drive API v2 修正条款,了解必须如何为 v2 开发者修改 v3 指南中的一些说明。
如需详细了解 Drive API v3 的改进,您可以观看以下由 Google 工程师讨论新 API 设计的视频。
V3 改进
为了优化性能并降低 API 行为的复杂性,v3 与以前的 API 版本相比提供了以下改进:
- 默认情况下,搜索文件和共享云端硬盘时不会返回完整的资源,而只会返回一部分常用字段。如需详细了解
fields
,请参阅files.list
方法和drives.list
方法。 - 现在,几乎所有返回响应的方法都需要
fields
参数。如需查看需要fields
的所有方法的列表,请参阅 Drive API 参考文档。 - 移除了具有重复功能的资源。以下是一些示例:
files.list
方法可完成与Children
和Parents
集合相同的功能,因此已从 v3 中移除。- 移除了
Realtime.*
方法。
- 默认情况下,搜索中不会返回应用数据。在 v2 中,您可以设置
drive.appdata
范围,它从files.list
方法和changes.list
方法返回应用数据,但这样做会降低性能。在 v3 中,您可以设置drive.appdata
范围,并设置查询参数spaces=appDataFolder
以请求应用数据。 - 所有更新操作都使用 PATCH,而不是 PUT。
- 如需导出 Google 文档,请使用
files.export
方法。 changes.list
方法的行为有所不同。请使用不透明页面令牌,而不是更改 ID。如需轮询更改集合,请先针对初始值调用changes.getStartPageToken
方法。对于后续查询,changes.list
方法会返回newStartPageToken
值。- 更新方法现在会拒绝指定不可写入字段的请求。
about
资源中的 v2exportFormats
和importFormats
字段是允许使用的导入或导出格式的列表。在 v3 中,它们是可能目标到所有受支持的导入或导出的 MIME 类型映射。- v2 中的
appdata
和appfolder
别名在 v3 中现为appDataFolder
。 properties
资源已从 v3 中移除。files
资源具有包含 true 键值对的properties
字段。properties
字段包含公共属性,appProperties
字段包含私有属性,因此不需要可见性字段。files
资源中的modifiedTime
字段会在有人上次修改该文件时更新。在 v2 中,只有在您设置了setModifiedDate
字段的情况下,modifiedDate
字段才能在更新时可变。files
资源中的viewedByMeTime
字段不会自动更新。- 如需导入 Google 文档格式,请在资源正文中设置适当的目标
mimeType
。在 v2 中,您设置了?convert=true
。 - 如果格式不受支持,导入操作会返回 400 错误。
- 读者和评论者无法查看权限。
- 移除了权限的
me
别名。 - 某些功能作为请求资源的一部分提供,但改为作为请求参数提供。例如:
- 在 v2 中,您可以使用
children.delete
从父文件夹中移除子文件。 - 在 v3 中,您对网址中包含
?removeParents=parent_id
的子级使用files.update
。
- 在 v2 中,您可以使用
其他差异
v3 中的字段和参数名称有所不同。部分示例如下:
name
属性替换了files
资源中的title
。Time
是所有日期和时间字段的后缀,而不是Date
。- 列表操作不使用
items
字段来包含结果集。资源类型为结果提供了一个字段(例如files
或changes
)。