La dernière version de l'API Google Drive est v3. Dans la version 3, les performances sont meilleures, car les recherches ne renvoient qu'un sous-ensemble de champs. Utilisez la version actuelle, sauf si vous avez besoin de la collection v2. Si vous utilisez la version 2, envisagez de passer à la version 3. Pour savoir comment procéder à la migration, consultez Migrer vers l'API Drive v3. Pour obtenir la liste complète des différences de version, consultez la documentation de référence de l'API Drive v2 et v3.
Si vous souhaitez continuer à utiliser la version 2, consultez l'avenant concernant le Guide de l'API Drive v2 afin de découvrir comment modifier certaines instructions des guides de la version 3 pour les développeurs de la version 2.
Pour en savoir plus sur les améliorations apportées à l'API Drive v3, vous pouvez regarder la vidéo suivante réalisée par des ingénieurs Google au sujet de la nouvelle conception des API.
Améliorations apportées à la version 3
Pour optimiser les performances et réduire la complexité du comportement des API, la version 3 propose les améliorations suivantes par rapport à la version précédente:
- Par défaut, les recherches de fichiers et de Drive partagés n'affichent pas les ressources complètes. Seul un sous-ensemble de champs couramment utilisés est renvoyé. Pour en savoir plus sur
fields
, consultez les méthodesfiles.list
etdrives.list
. - Presque toutes les méthodes qui renvoient une réponse nécessitent désormais le paramètre
fields
. Pour obtenir la liste de toutes les méthodes nécessitantfields
, consultez la documentation de référence de l'API Drive. - Les ressources comportant des fonctionnalités en double ont été supprimées. Voici quelques exemples :
- La méthode
files.list
offre les mêmes fonctionnalités que les collectionsChildren
etParents
. Elles sont donc supprimées de la v3. - Les méthodes
Realtime.*
ont été supprimées.
- La méthode
- Les données d'application ne sont pas renvoyées par défaut dans les recherches. Dans la version 2, vous pouvez définir le champ d'application
drive.appdata
pour renvoyer les données d'application à partir des méthodesfiles.list
etchanges.list
, mais cela ralentit les performances. Dans la version 3, vous définissez le champ d'applicationdrive.appdata
et le paramètre de requêtespaces=appDataFolder
pour demander des données d'application. - Toutes les opérations de mise à jour utilisent PATCH au lieu de PUT.
- Pour exporter des documents Google Docs, utilisez la méthode
files.export
. - Le comportement de la méthode
changes.list
est différent. Au lieu des ID de modification, utilisez des jetons de page opaques. Pour interroger la collection de modifications, commencez par appeler la méthodechanges.getStartPageToken
pour obtenir la valeur initiale. Pour les requêtes suivantes, la méthodechanges.list
renvoie la valeurnewStartPageToken
. - Les méthodes de mise à jour rejettent désormais les requêtes qui spécifient des champs non accessibles en écriture.
- Les champs
exportFormats
etimportFormats
de la version 2 de la ressourceabout
sont des listes de formats d'importation ou d'exportation autorisés. Dans la version 3, il s'agit de mappages au type MIME des cibles possibles vers toutes les importations ou exportations compatibles. - Dans la version 2, les alias
appdata
etappfolder
sont désormaisappDataFolder
dans la version 3. - La ressource
properties
a été supprimée de la version 3. La ressourcefiles
comporte le champproperties
qui contient les vraies paires clé/valeur. Le champproperties
contient des propriétés publiques et le champappProperties
contient des propriétés privées. Le champ de visibilité n'est donc pas nécessaire. - Le champ
modifiedTime
de la ressourcefiles
met à jour la dernière fois que quelqu'un a modifié le fichier. Dans la version 2, le champmodifiedDate
n'était modifiable que lors d'une mise à jour si vous définissez le champsetModifiedDate
. - Le champ
viewedByMeTime
de la ressourcefiles
n'est pas automatiquement mis à jour. - Pour importer des formats Google Docs, définissez la cible
mimeType
appropriée dans le corps de la ressource. Dans la version 2, vous définissez?convert=true
. - Les opérations d'importation renvoient une erreur 400 si le format n'est pas compatible.
- Les lecteurs et les commentateurs ne peuvent pas afficher les autorisations.
- L'alias
me
pour les autorisations est supprimé. - Certaines fonctionnalités étaient disponibles dans la ressource de requête, mais le sont à la place en tant que paramètre de requête. Exemple :
- Dans la version 2, vous pouvez utiliser
children.delete
pour supprimer un fichier enfant d'un dossier parent. - Dans la version 3, vous utilisez
files.update
sur l'élément enfant avec?removeParents=parent_id
dans l'URL.
- Dans la version 2, vous pouvez utiliser
Autres différences
Dans la version 3, les champs et les noms des paramètres sont différents. Voici quelques exemples :
- La propriété
name
remplacetitle
dans la ressourcefiles
. Time
est le suffixe de tous les champs de date et d'heure au lieu deDate
.- Les opérations de liste n'utilisent pas le champ
items
pour contenir l'ensemble de résultats. Le type de ressource fournit un champ pour les résultats (par exemple,files
ouchanges
).