本文档介绍了如何在 Google 云端硬盘中使用 fields 参数。
如需返回您需要的确切字段并提升性能,请在方法调用中使用
fields system
parameter。
如需了解适用于 Drive API 的其他系统参数, 请参阅 替代系统参数。
fields 参数的工作方式
fields 参数使用
FieldMask
进行响应过滤。字段掩码用于指定请求应返回的字段子集。使用字段掩码是一种良好的设计做法,可确保您不会请求不必要的数据,这有助于避免产生不必要的处理时间。
如果您未指定 fields 参数,服务器会返回特定于该方法的默认字段集。例如,
list 方法的 files 方法仅返回 kind、id、name 和
mimeType 字段。get 方法在
permissions 资源上会返回不同的默认字段集。
对于 about、comments(不包括 delete)和 replies(不包括 delete)资源的所有方法,您都 必须 设置
fields 参数。这些方法不会返回默认字段集。
处理完含有 fields 参数的有效请求之后,服务器将返回 HTTP 200 OK 状态代码以及所请求的数据。如果 fields 参数出现错误或因其他原因而无效,服务器将返回 HTTP 400 Bad Request 状态代码以及一条错误消息,说明您的字段选择出现了什么错误。例如,
files.list(fields='files(id,capabilities,canAddChildren)') 会产生
“Invalid field selection canAddChildren.”错误。此示例的正确字段参数为
files.list(fields='files(id,capabilities/canAddChildren)')。
如需确定可以使用 fields 参数返回的字段,请访问您要查询的资源的文档页面。例如,如需查看可以为文件返回哪些字段,请参阅 files 资源文档。
如需了解更多特定于文件的查询字词,请参阅搜索查询字词和运算符。
字段参数格式规则
fields 请求参数值的格式大致基于 XPath 语法。以下是 fields 参数的格式规则。所有这些规则都使用与 files.get 方法相关的示例。
使用逗号分隔列表来选择多个字段,例如
'name, mimeType'。使用
a/b选择嵌套在字段a内的字段b,例如'capabilities/canDownload'。如需了解详情,请参阅提取 嵌套资源的字段。将表达式放在括号“()”内,以使用子选择器来请求数组或 对象的一组特定子字段。例如,
'permissions(id)'仅返回权限数组中每个元素的权限 ID。如需返回对象中的所有字段,请在字段选择中使用星号 (
*) 作为通配符。例如,'permissions/permissionDetails/*'会选择 所有可用的权限详细信息字段。请注意,使用通配符可能会对请求的性能产生负面影响。
请求
在此示例中,我们在请求中提供了文件 ID 路径参数和多个字段作为查询参数。响应会返回文件 ID 的字段值。
GET https://www.googleapis.com/drive/v3/files/FILE_ID?fields=name,starred,shared
响应
{
"name": "File1",
"starred": false,
"shared": true
}
}提取嵌套资源的字段
当某个字段引用另一个资源时,您可以指定应提取嵌套资源的哪些字段。
例如,如需检索 permissions 资源的 role 字段(嵌套资源),请使用以下任一选项:
permissions.get,并使用fields=role。permissions.get,并使用fields=*显示所有permissions字段。files.get,并使用fields=permissions(role)或fields=permissions/role。files.get,并使用fields=permissions显示所有permissions字段。changes.list,并使用fields=changes(file(permissions(role)))。
如需检索多个字段,请使用逗号分隔列表。例如,files.list,并使用 fields=files(id,name,createdTime,modifiedTime,size)。
请求
在此示例中,我们在请求中提供了文件 ID 路径参数和多个字段(包括嵌套权限资源的某些字段)作为查询参数。响应会返回文件 ID 的字段值。
GET https://www.googleapis.com/drive/v3/files/FILE_ID?fields=name,starred,shared,permissions(kind,type,role)
响应
{ "name": "File1", "starred": false, "shared": true, "permissions": [ { "kind": "drive#permission", "type": "user", "role": "owner" } ] }
替代系统参数
系统参数中记录了适用于所有 Google Drive API 操作的查询参数。