Przewodnik porównawczy interfejsu Drive API v2 i v3

Najnowsza wersja interfejsu Google Drive API to v3. W wersji 3 wydajność jest lepsza, wyszukiwania zwracają tylko podzbiór pól. Używaj bieżącej wersji, chyba że jest to konieczne w kolekcji v2. Jeśli używasz wersji v2, rozważ migracji do wersji 3. Aby przeprowadzić migrację, zapoznaj się z artykułem Migracja do interfejsu Drive API w wersji 3. Pełną listę różnic między wersjami znajdziesz w artykule porównanie interfejsów Drive API w wersjach 2 i 3 odniesienie.

Jeśli chcesz nadal używać wersji 2, zapoznaj się z poprawką do interfejsu Guide to Drive API (wersja 2), aby dowiedzieć się, jak niektóre instrukcje w wersji 3 należy zmienić przewodniki dla programistów wersji 2.

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

Ulepszenia wersji 3

Aby zoptymalizować wydajność i uprościć działanie interfejsu API, w wersji 3: i ulepszenia w porównaniu z poprzednią wersją interfejsu API:

  • Wyszukiwanie plików i dysków współdzielonych domyślnie nie zwraca pełnych zasobów, zwracany jest tylko podzbiór często używanych pól. Więcej informacji: fields, patrz metoda files.list i metodę drives.list.
  • Prawie wszystkie metody zwracające odpowiedź wymagają teraz fields . Listę wszystkich metod wymagających atrybutu fields znajdziesz tutaj: Dokumentacja interfejsu Drive API.
  • Zasoby ze zduplikowanymi możliwościami zostały usunięte. Oto kilka przykładów:
    • Metoda files.list działa tak samo jak metoda Kolekcje Children i Parents, więc zostały usunięte z wersji 3.
    • Metody Realtime.* zostały usunięte.
  • Dane aplikacji nie są domyślnie zwracane w wynikach wyszukiwania. W wersji v2 możesz określić drive.appdata, które zwraca dane aplikacji z files.list i changes.list ale spowalnia wydajność. W wersji 3 ustawiasz zakres drive.appdata, oraz ustawić parametr zapytania spaces=appDataFolder tak, aby danych aplikacji.
  • Wszystkie operacje aktualizacji używają parametru PATCH zamiast PUT.
  • Aby wyeksportować Dokumenty Google, użyj files.export.
  • Metoda changes.list działa inaczej. Zamiast identyfikatorów zmiany użyj nieprzejrzyste tokeny stron. Aby przeprowadzić ankietę w kolekcji zmian, najpierw wywołaj funkcję changes.getStartPageToken dla wartości początkowej. W przypadku kolejnych zapytań atrybut changes.list zwraca wartość newStartPageToken.
  • Metody aktualizacji odrzucają teraz żądania określające pola, których nie można zapisać.
  • Pola exportFormats i importFormats (wersja 2) w tabeli about zasób to listy w dozwolonych formatach importu i eksportu. W wersji 3 są to mapy typu MIME możliwe cele dla wszystkich obsługiwanych importów lub eksportów.
  • Aliasy appdata i appfolder w wersji 2 są teraz appDataFolder w wersji 3.
  • Zasób properties został usunięty z wersji 3. Zasób files ma pole properties zawierający pary klucz-wartość „prawda”. Pole properties zawiera publiczne a pole appProperties zawiera właściwości prywatne, więc pole widoczności nie jest potrzebne.
  • Pole modifiedTime w zasobie files aktualizuje czas ostatnio każdy użytkownik zmodyfikował plik. W wersji 2 pole modifiedDate było możliwe tylko do zmiany przy aktualizacji, jeśli ustawisz pole setModifiedDate.
  • Pole viewedByMeTime w zasobie files nie jest automatycznie .
  • Aby zaimportować formaty Dokumentów Google, ustaw odpowiedni docelowy element mimeType w treści zasobu. W wersji 2 masz ustawioną wartość ?convert=true.
  • Operacje importu zwracają błąd 400, jeśli format nie jest obsługiwany.
  • Czytelnicy i komentujący nie mogą wyświetlać uprawnień.
  • Alias me uprawnień został usunięty.
  • Niektóre funkcje były dostępne jako część zasobu żądania, ale są dostępny jako parametr żądania. Na przykład:
    • W wersji 2 za pomocą polecenia children.delete możesz usunąć plik podrzędny z folder nadrzędny.
    • W wersji 3 używasz konta files.update w elemencie podrzędnym z ?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 sufiks dla wszystkich pól daty i godziny zamiast Date.
  • Operacje wyświetlania listy nie wykorzystują pola items do przechowywania zestawu wyników. typ zasobu zawiera pole na wyniki (np. files lub changes).