Para mostrar los campos exactos que necesitas y mejorar el rendimiento, usa el parámetro de consulta fields
en tu llamada de método.
De forma predeterminada, el servidor devuelve un conjunto de campos específicos del recurso que se consulta. Por ejemplo, el método files.get
solo puede mostrar id
, name
y mimeType
para el recurso files
. El método permissions.get
muestra un conjunto diferente de campos predeterminados para un recurso permissions
.
Después de que un servidor procesa una solicitud válida que incluye el parámetro de consulta fields
, devuelve un código de estado HTTP 200 OK
, junto con los datos solicitados. Si el parámetro de consulta de campos tiene un error o no es válido, el servidor muestra un código de estado HTTP 400 Bad Request
, junto con un mensaje de error que indica cuál es el problema con la selección de campos. Por ejemplo, files.list(fields='files(id,capabilities,canAddChildren)')
muestra el error "La selección de campo no válida canAddChild". El parámetro de consulta de campos correcto para este ejemplo es files.list(fields='files(id,capabilities/canAddChildren)')
.
Para determinar los campos que puedes mostrar con el parámetro fields
, visita la página de documentación del recurso que consultas. Por ejemplo, para ver qué campos puedes mostrar para un archivo, consulta la documentación del recurso files
.
Reglas de formato de parámetros de campo
El formato del valor del parámetro de solicitud de campos se basa de manera general en la sintaxis de XPath. Las siguientes son reglas de formato para el parámetro fields
. Todas estas reglas usan ejemplos relacionados con el método files.get
.
Usa una lista separada por comas para seleccionar varios campos, como
'name, mimeType'
.Usa
a/b
para seleccionar el campob
que se anida en el campoa
, como'capabilities/canDownload'
. Para obtener más información, consulta Recupera los campos de un recurso anidado.Usa un subselector para solicitar un conjunto de subcampos específicos de objetos o arreglos si colocas las expresiones entre paréntesis "()". Por ejemplo,
'permissions(id)'
solo muestra el ID de permiso de cada elemento en el array de permisos.Para mostrar todos los campos de un objeto, usa un asterisco como comodín en las selecciones de campo. Por ejemplo,
'permissions/permissionDetails/*'
selecciona todos los campos de detalles del permiso disponibles por permiso. Ten en cuenta que el uso de este comodín puede tener impactos negativos en el rendimiento de la solicitud.
Mostrar un ejemplo
Solicitud
En este ejemplo, proporcionamos el parámetro de ruta de acceso del ID del archivo y varios campos como parámetro de consulta en la solicitud. La respuesta muestra los valores de campo para el ID de archivo.
GET https://www.googleapis.com/drive/v3/files/FILE_ID?fields=name,starred,shared
Respuesta
{ "name": "File1", "starred": false, "shared": true } }
Recupera los campos de un recurso anidado
Cuando un campo hace referencia a otro recurso, puedes especificar qué campos del recurso anidado se deben recuperar.
Por ejemplo, para recuperar el campo role
(recurso anidado) del recurso permissions
, usa cualquiera de las siguientes opciones:
permissions.get
confields=role
ofields=*
.files.get
confields=permissions(role)
ofields=permissions/role
.files.get
confields=permissions
para implicar todos los campos del recurso anidado.changes.list
confields=changes(file(permissions(role)))
.
Para recuperar varios campos, usa una lista separada por comas. Por ejemplo, files.list
con fields=files(id,name,createdTime,modifiedTime,size)
.
Mostrar un ejemplo
Solicitud
En este ejemplo, proporcionamos el parámetro de ruta de acceso del ID de archivo y varios campos, incluidos ciertos campos del recurso de permisos anidado, como un parámetro de consulta en la solicitud. La respuesta muestra los valores de campo para el ID de archivo.
GET https://www.googleapis.com/drive/v3/files/FILE_ID?fields=name,starred,shared,permissions(kind,type,role)
Respuesta
{ "name": "File1", "starred": false, "shared": true, "permissions": [ { "kind": "drive#permission", "type": "user", "role": "owner" } ] }