La dernière version de l'API Google Drive est la version 3. Les performances de la version 3 sont meilleures, car les recherches ne renvoient qu'un sous-ensemble de champs. Utilisez la version actuelle, sauf si vous avez besoin de la v2 collection. Si vous utilisez la version 2, envisagez de migrer vers la version 3. Pour migrer, consultez Migrer vers l'API Drive v3. Pour obtenir la liste complète des différences entre les versions, consultez la documentation de référence Comparaison des API Drive v2 et v3.
Si vous souhaitez continuer à utiliser la version 2, consultez le Guide de l'amendement de l'API Drive v2 pour découvrir comment certaines instructions des guides de la version 3 doivent être modifiées 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 dans laquelle des ingénieurs Google présentent la nouvelle conception de l'API.
Améliorations de la version 3
Pour optimiser les performances et réduire la complexité du comportement de l'API, la version 3 apporte les améliorations suivantes par rapport à la version précédente de l'API :
- Les recherches de fichiers et de Drive partagés ne renvoient pas de ressources complètes par défaut. Seul un sous-ensemble de champs couramment utilisés est renvoyé. Pour en savoir plus sur
fields, consultez lafiles.listméthode et ladrives.listméthode. - 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 qui ont des fonctionnalités en double ont été supprimées. Voici quelques exemples :
- La méthode
files.listremplit la même fonction que les collectionsChildrenetParents. Elles sont donc supprimées de la version 3. - 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
drive.appdatachamp d'application, qui renvoie les données d'application à partir de lafiles.listméthode et de lachanges.listméthode, mais cela ralentit les performances. Dans la version 3, vous définissez le champ d'applicationdrive.appdata, ainsi que le paramètre de requêtespaces=appDataFolderpour demander les données d'application. - Toutes les opérations de mise à jour utilisent PATCH au lieu de PUT.
- Pour exporter des documents Google, utilisez la
files.exportméthode. - Le comportement de la méthode
changes.listest différent. Au lieu d'utiliser des ID de modification, utilisez des jetons de page opaques. Pour interroger la collection de modifications, appelez d'abord lachanges.getStartPageTokenméthode pour obtenir la valeur initiale. Pour les requêtes suivantes, la méthodechanges.listrenvoie la valeurnewStartPageToken. - Les méthodes de mise à jour refusent désormais les requêtes qui spécifient des champs non accessibles en écriture.
- Les champs
exportFormatsetimportFormatsde la version 2 dans laaboutressource sont des listes de formats d'importation ou d'exportation autorisés. Dans la version 3, il s'agit de mappages de types MIME des cibles possibles pour toutes les importations ou exportations compatibles. - Les alias
appdataetappfolderde la version 2 sont désormaisappDataFolderdans la version 3. - La ressource
propertiesest supprimée de la version 3. La ressourcefilescomporte lepropertieschamp qui contient de véritables paires clé/valeur. Le champpropertiescontient des propriétés publiques, et le champappPropertiescontient des propriétés privées. Le champ de visibilité n'est donc pas nécessaire. - Le champ
modifiedTimede la ressourcefilesindique la dernière fois que quelqu'un a modifié le fichier. Dans la version 2, le champmodifiedDaten'était mutable lors de la mise à jour que si vous définissiez le champsetModifiedDate. - Le champ
viewedByMeTimede la ressourcefilesn'est pas mis à jour automatiquement. - Pour importer des formats Google Docs, définissez le
mimeTypecible approprié 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
mepour les autorisations est supprimé. - Certaines fonctionnalités étaient disponibles dans la ressource de requête, mais sont désormais disponibles en tant que paramètre de requête. Exemple :
- Dans la version 2, vous pouvez utiliser
children.deletepour supprimer un fichier enfant d'un dossier parent. - Dans la version 3, vous utilisez
files.updatesur l'enfant avec?removeParents=parent_iddans l'URL.
- Dans la version 2, vous pouvez utiliser
Autres différences
Les noms des champs et des paramètres sont différents dans la version 3. Voici quelques exemples :
- La propriété
nameremplacetitledans la ressourcefiles. Timeest le suffixe de tous les champs de date et d'heure au lieu deDate.- Les opérations de liste n'utilisent pas le champ
itemspour contenir l'ensemble de résultats. Le type de ressource fournit un champ pour les résultats (tel quefilesouchanges).