Vergleich der Drive APIs Version 2 und Version 3

Die neueste Version der Google Drive API ist Version 3. Die Leistung in v3 ist besser, da bei Suchanfragen nur eine Teilmenge von Feldern zurückgegeben wird. Verwenden Sie die aktuelle Version, es sei denn, Sie benötigen die v2-Sammlung. Wenn Sie v2 verwenden, sollten Sie die Migration zu v3 in Betracht ziehen. Informationen zur Migration finden Sie unter Zur Drive API Version 3 migrieren. Eine vollständige Liste der Versionsunterschiede finden Sie in der Vergleichsreferenz für Drive API Version 2 und Version 3.

Wenn Sie Version 2 weiterhin verwenden möchten, lesen Sie in der Änderungsvereinbarung Guide to Drive API v2 (Leitfaden zur Drive API Version 2) nach, wie einige Anweisungen in den v3-Leitfäden für Entwickler von Version 2 geändert werden müssen.

Weitere Informationen zu den Verbesserungen der Drive API Version 3 finden Sie im folgenden Video, in dem Google-Entwickler das neue API-Design besprechen.

V3-Verbesserungen

Version 3 bietet im Vergleich zur vorherigen API-Version folgende Verbesserungen, um die Leistung zu optimieren und die Komplexität des API-Verhaltens zu reduzieren:

  • Bei der Suche nach Dateien und geteilten Ablagen werden standardmäßig keine vollständigen Ressourcen zurückgegeben. Es wird nur ein Teil der häufig verwendeten Felder zurückgegeben. Weitere Informationen zu fields finden Sie in der Methode files.list und in der Methode drives.list.
  • Fast alle Methoden, die eine Antwort zurückgeben, erfordern jetzt den Parameter fields. Eine Liste aller Methoden, die fields erfordern, finden Sie in der Drive API-Referenz.
  • Ressourcen mit doppelten Funktionen wurden entfernt. Hier einige Beispiele:
    • Die Methode files.list bietet dieselben Funktionen wie die Sammlungen Children und Parents und wurden daher aus Version 3 entfernt.
    • Die Realtime.*-Methoden wurden entfernt.
  • App-Daten werden bei Suchvorgängen nicht standardmäßig zurückgegeben. In Version 2 können Sie den Bereich drive.appdata festlegen. Danach werden Anwendungsdaten von der Methode files.list und der Methode changes.list zurückgegeben, die Leistung wird jedoch verlangsamt. In Version 3 legen Sie den Bereich drive.appdata und den Abfrageparameter spaces=appDataFolder fest, um Anwendungsdaten anzufordern.
  • Alle Aktualisierungsvorgänge verwenden PATCH anstelle von PUT.
  • Verwenden Sie zum Exportieren von Google-Dokumenten die Methode files.export.
  • Das Verhalten der Methode changes.list ist anders. Verwenden Sie anstelle von Änderungs-IDs intransparente Seitentokens. Rufen Sie zuerst die Methode changes.getStartPageToken für den Anfangswert auf, um die Änderungssammlung abzufragen. Bei nachfolgenden Abfragen gibt die Methode changes.list den Wert newStartPageToken zurück.
  • Aktualisierungsmethoden lehnen jetzt Anfragen ab, die nicht beschreibbare Felder enthalten.
  • Die V2-Felder exportFormats und importFormats in der Ressource about sind Listen zulässiger Import- und Exportformate. In Version 3 sind dies MIME-Typ-Zuordnungen möglicher Ziele für alle unterstützten Importe oder Exporte.
  • Die Aliasse appdata und appfolder der Version 2 in Version 3 heißen jetzt appDataFolder.
  • Die Ressource properties wurde aus v3 entfernt. Die Ressource files enthält das Feld properties, das echte Schlüssel/Wert-Paare enthält. Das Feld properties enthält öffentliche Attribute und das Feld appProperties enthält private Attribute. Daher wird das Feld für die Sichtbarkeit nicht benötigt.
  • Das Feld modifiedTime in der Ressource files wird aktualisiert, wann die Datei zuletzt von einem Nutzer geändert wurde. In Version 2 konnte das Feld modifiedDate nur bei einer Aktualisierung geändert werden, wenn Sie einen Wert für das Feld setModifiedDate festgelegt haben.
  • Das Feld viewedByMeTime in der Ressource files wird nicht automatisch aktualisiert.
  • Zum Importieren von Google Docs-Formaten legen Sie das entsprechende Ziel-mimeType im Ressourcentext fest. In Version 2 haben Sie ?convert=true festgelegt.
  • Bei Importvorgängen wird der Fehler 400 zurückgegeben, wenn das Format nicht unterstützt wird.
  • Leser und Kommentatoren können keine Berechtigungen ansehen.
  • Der Alias me für Berechtigungen wurde entfernt.
  • Einige Funktionen waren als Teil der Anfrageressource verfügbar, sind jedoch stattdessen als Anfrageparameter verfügbar. Beispiel:
    • In Version 2 können Sie children.delete verwenden, um eine untergeordnete Datei aus einem übergeordneten Ordner zu entfernen.
    • In Version 3 verwenden Sie files.update für die untergeordnete Datei mit ?removeParents=parent_id in der URL.

Weitere Unterschiede

Felder und Parameternamen unterscheiden sich in Version 3. Beispiele:

  • Das Attribut name ersetzt title in der Ressource files.
  • Time ist das Suffix für alle Datums- und Uhrzeitfelder anstelle von Date.
  • Bei Listenvorgängen wird die Ergebnismenge nicht im Feld items verwendet. Der Ressourcentyp stellt ein Feld für die Ergebnisse bereit, z. B. files oder changes.