Para devolver los campos exactos que necesitas y mejorar el rendimiento, usa el parámetro del sistema fields
en la llamada al método.
En este documento, se explica cómo usar el parámetro fields
en Google Drive.
Cómo funciona el parámetro fields
El parámetro fields
usa un FieldMask para filtrar la respuesta. Las máscaras de campo se usan para especificar un subconjunto de campos que debe devolver una solicitud. Usar una máscara de campo es una práctica de diseño recomendada para garantizar que no solicites datos innecesarios, lo que, a su vez, ayuda a evitar tiempos de procesamiento innecesarios.
Si no especificas el parámetro fields
, el servidor devuelve un conjunto predeterminado de campos específicos del método. Por ejemplo, el método list
en el método files
solo devuelve los campos kind
, id
, name
y mimeType
. El método get
del recurso permissions
devuelve un conjunto diferente de campos predeterminados.
Para todos los métodos de los recursos about
, comments
(excepto delete
) y replies
(excepto delete
), debes establecer el parámetro fields
. Estos métodos no devuelven un conjunto predeterminado de campos.
Después de que un servidor procesa una solicitud válida que incluye el parámetro fields
, devuelve un código de estado HTTP 200 OK
, junto con los datos solicitados. Si el parámetro fields tiene un error o no es válido, el servidor devuelve un código de estado HTTP 400 Bad Request
, junto con un mensaje de error que indica qué falla en tu selección de campos. Por ejemplo, files.list(fields='files(id,capabilities,canAddChildren)')
genera el error "Invalid field selection canAddChildren". El parámetro fields correcto para este ejemplo es files.list(fields='files(id,capabilities/canAddChildren)')
.
Para determinar los campos que puedes devolver con el parámetro fields
, visita la página de documentación del recurso que consultas. Por ejemplo, para ver qué campos puedes devolver para un archivo, consulta la documentación del recurso files
.
Para obtener más términos de búsqueda específicos de archivos, consulta Términos y operadores de búsqueda.
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 la sintaxis de XPath. A continuación, se indican las 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 está anidado dentro del campoa
, como'capabilities/canDownload'
. Para obtener más información, consulta Cómo recuperar los campos de un recurso anidado.Puedes usar 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 para cada elemento del array de permisos.Para devolver todos los campos de un objeto, usa un asterisco (
*
) como comodín en las selecciones de campos. Por ejemplo,'permissions/permissionDetails/*'
selecciona todos los campos de detalles de permisos disponibles por permiso. Ten en cuenta que el uso del comodín puede generar un impacto negativo en el rendimiento de la solicitud.
Solicitud
En este ejemplo, proporcionamos el parámetro de ruta de acceso al ID de archivo y varios campos como parámetro de búsqueda en la solicitud. La respuesta devuelve los valores de los campos 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
.permissions.get
confields=*
para mostrar todos los campospermissions
files.get
confields=permissions(role)
ofields=permissions/role
.files.get
confields=permissions
para mostrar todos los campospermissions
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)
.
Solicitud
En este ejemplo, proporcionamos el parámetro de ruta de acceso del ID de archivo y varios campos, incluidos ciertos campos del recurso anidado de permisos, como un parámetro de consulta en la solicitud. La respuesta devuelve los valores de los campos 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" } ] }
Temas relacionados
- Cómo resolver errores
- Cómo solucionar problemas de autenticación y autorización
- Mejora el rendimiento