最新的 Google 云端硬盘 API 版本为 v3。v3 中的性能更好,因为搜索仅返回部分字段。除非您需要 v2 集合,否则请使用当前版本。如果您使用的是 v2,请考虑迁移到 v3。如需迁移,请参阅迁移到 Drive API v3。如需查看版本差异的完整列表,请参阅 Drive API v2 和 v3 比较参考文档。
如果您想继续使用 v2,请参阅 Drive API v2 指南修订版,了解 v3 指南中的一些说明必须如何针对 v2 开发者进行修订。
如需详细了解 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资源中的 v2- exportFormats和- importFormats字段是允许的导入或导出格式的列表。在 v3 中,它们是可能的目标到所有受支持的导入或导出的 MIME 类型映射。
- v2 中的 appdata和appfolder别名在 v3 中现在为appDataFolder。
- properties资源已从 v3 中移除。- files资源具有包含真实键值对的- properties字段。- properties字段包含公共属性,- appProperties字段包含私有属性,因此不需要 visibility 字段。
- 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)。