Pour renvoyer les champs exacts dont vous avez besoin et améliorer les performances, utilisez fields
dans votre appel de méthode.
Par défaut, le serveur renvoie un ensemble de champs spécifiques à la ressource concernée.
ou non. Par exemple, files.get
ne peut renvoyer que les valeurs id
, name
et mimeType
pour la
files
. La
La méthode permissions.get
renvoie une
un ensemble différent de champs par défaut
Ressource permissions
.
Une fois qu'un serveur a traité une requête valide incluant la requête fields
, il renvoie un code d'état HTTP 200 OK
, ainsi que la valeur
données. Si le paramètre de requête "fields" contient une erreur ou n'est pas valide pour une autre raison, le
Le serveur renvoie un code d'état HTTP 400 Bad Request
, ainsi qu'une erreur
indiquant le problème rencontré lors de la sélection des champs. Par exemple :
files.list(fields='files(id,capabilities,canAddChildren)')
génère l'erreur suivante :
"Sélection de champs non valide canAddChildren." Le paramètre de requête "fields" approprié pour
cet exemple est
files.list(fields='files(id,capabilities/canAddChildren)')
Pour déterminer les champs que vous pouvez renvoyer à l'aide du paramètre fields
, consultez la
de documentation de la ressource que vous interrogez. Par exemple, pour voir ce que
que vous pouvez renvoyer pour un fichier, consultez la documentation sur les ressources files
.
Règles de mise en forme des paramètres de champ
Le format de la valeur du paramètre de requête "fields" est vaguement basé sur XPath.
syntaxe. Vous trouverez ci-dessous des règles de mise en forme pour le paramètre fields
. Tous
ces règles utilisent des exemples liés à la méthode files.get
.
Utilisez une liste d'éléments séparés par une virgule pour sélectionner plusieurs champs, par exemple
'name, mimeType'
.Utilisez
a/b
pour sélectionner le champb
imbriqué dans le champa
, comme'capabilities/canDownload'
Pour en savoir plus, consultez la section Récupérer les champs d'une imbriquées ressource.Utilisez un sous-sélecteur pour demander un ensemble de sous-champs spécifiques de tableaux ou objets en plaçant des expressions entre parenthèses "()". Par exemple :
'permissions(id)'
ne renvoie que l'ID d'autorisation pour chaque élément du d'autorisations.Pour renvoyer tous les champs d'un objet, utilisez un astérisque comme caractère générique dans le champ sélectionnées. Par exemple,
'permissions/permissionDetails/*'
sélectionne tous les champs de détails disponibles par autorisation. Notez que l'utilisation ce caractère générique peut avoir un impact négatif sur les performances de la requête.
Afficher un exemple
Requête
Dans cet exemple, nous fournissons le paramètre de chemin d'ID de fichier et plusieurs champs en tant que paramètre de requête dans la requête. La réponse renvoie les valeurs des champs pour l'ID de fichier.
GET https://www.googleapis.com/drive/v3/files/FILE_ID?fields=name,starred,shared
Réponse
{ "name": "File1", "starred": false, "shared": true } }
Extraire les champs d'une ressource imbriquée
Lorsqu'un champ fait référence à une autre ressource, vous pouvez spécifier les champs ressource imbriquée doit être récupérée.
Par exemple, pour récupérer le champ role
(ressource imbriquée) du permissions
ressource, utilisez l'une des options suivantes:
permissions.get
avecfields=role
oufields=*
.files.get
avecfields=permissions(role)
oufields=permissions/role
.files.get
avecfields=permissions
pour impliquer tous les champs de l'ensemble de données ressource.changes.list
correspond àfields=changes(file(permissions(role)))
.
Pour récupérer plusieurs champs, utilisez une liste d'éléments séparés par une virgule. Par exemple :
files.list
avec fields=files(id,name,createdTime,modifiedTime,size)
.
Afficher un exemple
Requête
Dans cet exemple, nous fournissons le paramètre de chemin d'ID de fichier et plusieurs champs, y compris certains champs de la ressource d'autorisations imbriquées, en tant que paramètre de requête dans la requête. La réponse renvoie les valeurs des champs pour l'ID de fichier.
GET https://www.googleapis.com/drive/v3/files/FILE_ID?fields=name,starred,shared,permissions(kind,type,role)
Réponse
{ "name": "File1", "starred": false, "shared": true, "permissions": [ { "kind": "drive#permission", "type": "user", "role": "owner" } ] }