Cómo mostrar campos específicos para un archivo

Para mostrar los campos exactos que necesitas y mejorar el rendimiento, usa fields. en tu llamada de método.

De forma predeterminada, el servidor devuelve un conjunto de campos específicos para el recurso que se envía. que se consultan. Por ejemplo, files.get solo muestre los valores id, name y mimeType de la files. El El método permissions.get muestra un un conjunto diferente de campos predeterminados para permissions recurso.

Después de que un servidor procesa una solicitud válida que incluye la consulta fields este envía un código de estado HTTP 200 OK junto con el parámetro de datos no estructurados. Si el parámetro de consulta de campos tiene un error o no es válido, el el servidor muestra un código de estado HTTP 400 Bad Request, junto con un error que indica cuál es el problema con la selección de los campos. Por ejemplo: files.list(fields='files(id,capabilities,canAddChildren)') arroja un error de "La selección de campo no válida puedeAdd Children". 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 en la página de documentación del recurso que estás consultando. Por ejemplo, para ver que puedes mostrar para un archivo, consulta la documentación del recurso files.

Reglas de formato de los parámetros de campo

El formato del valor del parámetro de solicitud de campos se basa de manera general en XPath. sintaxis. Las siguientes son reglas de formato para el parámetro fields. Todos 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 Recuperar los campos de un anidada recurso.

  • Usa un subselector para solicitar un conjunto de subcampos específicos de arrays o objetos colocando expresiones entre paréntesis "()". Por ejemplo: 'permissions(id)' solo devuelve el ID de permiso para cada elemento en el de permisos de estado.

  • Para mostrar todos los campos de un objeto, usa un asterisco como comodín en el campo selecciones. Por ejemplo, 'permissions/permissionDetails/*' selecciona todo disponibles por permiso. Ten en cuenta que el uso de este comodín puede tener un impacto negativo en el rendimiento de la solicitud.

Mostrar un ejemplo

Solicitud

En este ejemplo, proporcionamos el parámetro de ruta del ID de archivo y varios campos como un parámetro de consulta en la solicitud. La respuesta muestra los valores de campo para el ID del 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 el recurso anidado.

Por ejemplo, para recuperar el campo role (recurso anidado) de permissions recurso, 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 de la subclase anidada recurso.
  • 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 del ID del archivo y varios campos, incluidos ciertos campos del recurso de permisos anidados, como un parámetro de consulta en la solicitud. La respuesta muestra los valores de campo para el ID del 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"
    }
  ]
}