Cómo mostrar campos específicos para un archivo

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 campo b que se anida en el campo a, 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 con fields=role o fields=*.
  • files.get con fields=permissions(role) o fields=permissions/role.
  • files.get con fields=permissions para implicar todos los campos del recurso anidado.
  • changes.list con fields=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"
    }
  ]
}