Guide comparatif des API Drive v2 et v3

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 collection v2. Si vous utilisez la version 2, envisagez de passer à 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 de comparaison des versions 2 et 3 de l'API Drive.

Si vous souhaitez continuer à utiliser la version 2, consultez l'amendement du guide de l'API Drive v2 pour savoir comment certaines instructions des guides v3 doivent être modifiées pour les développeurs de la version 2.

Pour en savoir plus sur les améliorations de l'API Drive v3, vous pouvez regarder la vidéo suivante dans laquelle des ingénieurs Google discutent de la nouvelle conception de l'API.

Améliorations de la version V3

Pour optimiser les performances et réduire la complexité du comportement de l'API, la version 3 offre les améliorations suivantes par rapport à la version précédente de l'API:

  • Par défaut, les recherches de fichiers et de Drive partagés ne renvoient pas toutes les ressources. Seul un sous-ensemble de champs couramment utilisés est renvoyé. Pour en savoir plus sur fields, consultez les méthodes files.list et drives.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écessitant fields, consultez la documentation de référence de l'API Drive.
  • Les ressources dont les fonctionnalités sont en double ont été supprimées. Voici quelques exemples :
    • La méthode files.list offre les mêmes fonctionnalités que les collections Children et Parents. Elles sont donc supprimées de la version 3.
    • Les méthodes Realtime.* ont été supprimées.
  • Les données d'application ne sont pas renvoyées par défaut dans les recherches. Dans la version 2, vous pouvez définir la portée drive.appdata. Elle renvoie les données d'application à partir de la méthode files.list et de la méthode changes.list, mais elle ralentit les performances. Dans la version 3, vous définissez la portée drive.appdata et le paramètre de requête spaces=appDataFolder pour demander des données d'application.
  • Toutes les opérations de mise à jour utilisent PATCH au lieu de PUT.
  • Pour exporter Google Docs, utilisez la méthode files.export.
  • Le comportement de la méthode changes.list est différent. Au lieu de modifier les ID, utilisez des jetons de page opaques. Pour interroger la collection de modifications, appelez d'abord la méthode changes.getStartPageToken pour la valeur initiale. Pour les requêtes suivantes, la méthode changes.list renvoie la valeur newStartPageToken.
  • Les méthodes de mise à jour rejettent désormais les requêtes qui spécifient des champs non modifiables.
  • Les champs exportFormats et importFormats de la version 2 de la ressource about 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 appdata et appfolder de la version 2 sont désormais appDataFolder dans la version 3.
  • La ressource properties a été supprimée de la version 3. La ressource files contient le champ properties qui contient des paires clé-valeur réelles. Le champ properties contient des propriétés publiques et le champ appProperties des propriétés privées. Le champ de visibilité n'est donc pas nécessaire.
  • Le champ modifiedTime de la ressource files met à jour la dernière fois qu'un utilisateur a modifié le fichier. Dans la version 2, le champ modifiedDate n'était modifiable lors de la mise à jour que si vous définissiez le champ setModifiedDate.
  • Le champ viewedByMeTime de la ressource files ne se met pas automatiquement à jour.
  • Pour importer des formats Google Docs, définissez le mimeType cible approprié dans le corps de la ressource. Dans la version 2, vous devez définir ?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 consulter les autorisations.
  • L'alias me pour 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.delete pour supprimer un fichier enfant d'un dossier parent.
    • Dans la version 3, vous utilisez files.update sur l'enfant avec ?removeParents=parent_id dans l'URL.

Autres différences

Les noms des champs et des paramètres sont différents dans la version 3. Voici quelques exemples :

  • La propriété name remplace title dans la ressource files.
  • Time est le suffixe de tous les champs de date et d'heure au lieu de Date.
  • 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 ou changes).