Przewodnik porównawczy interfejsu Drive API v2 i v3

Najnowsza wersja interfejsu API Dysku Google to 3. Skuteczność wersji 3 jest większa, ponieważ wyszukiwania zwracają tylko podzbiór pól. Użyj bieżącej wersji, chyba że potrzebujesz kolekcji v2. Jeśli używasz wersji 2, rozważ przejście na wersję 3. Aby przeprowadzić migrację, zapoznaj się z artykułem Przechodzenie na interfejs Drive API w wersji 3. Pełną listę różnic między wersjami znajdziesz w dokumentacji poświęconej porównaniu wersji 2 i 3 interfejsu Drive API.

Jeśli chcesz nadal używać wersji 2, zapoznaj się z modyfikacją przewodnika po interfejsie Drive API w wersji 2, aby dowiedzieć się, jak zmienić niektóre instrukcje w przewodnikach dla wersji 3, aby były one zgodne z wersją 2.

Aby dowiedzieć się więcej o ulepszeniach interfejsu Drive API w wersji 3, obejrzyj ten film, w którym inżynierowie z Google omawiają nową wersję interfejsu API.

Ulepszenia w V3

Aby zoptymalizować wydajność i zredukować złożoność zachowania interfejsu API, wersja 3 zawiera te ulepszenia w porównaniu z poprzednią wersją interfejsu API:

  • Wyszukiwanie plików i dysków współdzielonych nie zwraca domyślnie pełnych zasobów, tylko podzbiór najczęściej używanych pól. Więcej informacji o fields znajdziesz w metodach files.listdrives.list.
  • Prawie wszystkie metody, które zwracają odpowiedź, wymagają teraz parametru fields. Listę wszystkich metod wymagających fields znajdziesz w przewodniku po interfejsie Drive API.
  • Zasoby z duplikowanymi możliwościami zostały usunięte. Oto kilka przykładów:
    • Metoda files.list zapewnia te same funkcje co kolekcje ChildrenParents, więc zostały usunięte z wersji 3.
    • Metody Realtime.* zostały usunięte.
  • Dane aplikacji nie są domyślnie zwracane w wyszukiwaniach. W wersji 2 możesz ustawić zakres drive.appdata, który zwraca dane aplikacji z metody files.list i metody changes.list, ale spowalnia działanie. W wersji 3 określasz zakres drive.appdata, a także parametr zapytania spaces=appDataFolder, aby żądać danych aplikacji.
  • Wszystkie operacje aktualizacji używają metody PATCH zamiast PUT.
  • Aby wyeksportować Dokumenty Google, użyj metody files.export.
  • Działania metody changes.list są inne. Zamiast identyfikatorów zmian używaj zaciemnionych tokenów strony. Aby przeprowadzić ankietę zbioru zmian, najpierw wywołaj metodę changes.getStartPageToken, aby uzyskać wartość początkową. W przypadku kolejnych zapytań metoda changes.list zwraca wartość newStartPageToken.
  • Metody aktualizacji odrzucają teraz żądania, które określają pola, których nie można zapisać.
  • Pola exportFormatsimportFormats w zasobie about w wersji 2 zawierają listy dozwolonych formatów importowania i eksportowania. W wersji 3 są to mapy typów MIME możliwych docelów dla wszystkich obsługiwanych importów lub eksportów.
  • Aliasy appdataappfolder w wersji 2 są teraz dostępne jako appDataFolder w wersji 3.
  • Zasób properties został usunięty z wersji 3. Zasób files ma pole properties, które zawiera prawdziwe pary klucz-wartość. Pole properties zawiera właściwości publiczne, a pole appProperties – prywatne, więc pole widoczności nie jest potrzebne.
  • Pole modifiedTime w zasobie files jest aktualizowane za każdym razem, gdy ktoś zmodyfikuje plik. W wersji 2 pole modifiedDate można było zmienić tylko podczas aktualizacji, jeśli ustawisz pole setModifiedDate.
  • Pole viewedByMeTime w zasobie files nie jest aktualizowane automatycznie.
  • Aby importować formaty Dokumentów Google, musisz ustawić odpowiednią wartość docelową mimeTypew treści zasobu. W wersji 2 ustawiasz ?convert=true.
  • Operacje importowania zwracają błąd 400, jeśli format nie jest obsługiwany.
  • Czytelnicy i komentujący nie mogą wyświetlać uprawnień.
  • Alias uprawnień me został usunięty.
  • Niektóre funkcje były dostępne w ramach zasobu żądania, ale teraz są dostępne jako parametry żądania. Na przykład:
    • W wersji 2 możesz użyć elementu children.delete, aby usunąć plik podrzędny z folderu nadrzędnego.
    • W wersji 3 używasz elementu files.update w elementach podrzędnych z wartością ?removeParents=parent_id w adresie URL.

Inne różnice

Nazwy pól i parametrów są różne w wersji 3. Oto kilka przykładów:

  • Właściwość name zastępuje title w zasobie files.
  • Time to przyrostek dla wszystkich pól daty i godziny zamiast Date.
  • Operacje na listach nie używają pola items do przechowywania zbioru wyników. Typ zasobu udostępnia pole wyników (np. files lub changes).