Najnowsza wersja interfejsu API Dysku Google to 3. Skuteczność wersji 3 jest większa, ponieważ wyszukiwania zwracają tylko podzbiór pól. Używaj 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 Przejście 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 deweloperów wersji 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ą nowy interfejs 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 metodachfiles.list
idrives.list
. - Prawie wszystkie metody, które zwracają odpowiedź, wymagają teraz parametru
fields
. Listę wszystkich metod wymagającychfields
znajdziesz w przewodniku po interfejsie API Dysku. - Zasoby z duplikowanymi możliwościami zostały usunięte. Oto kilka przykładów:
- Metoda
files.list
zapewnia te same funkcje co kolekcjeChildren
iParents
, więc zostały usunięte z wersji 3. - Metody
Realtime.*
zostały usunięte.
- Metoda
- Dane aplikacji nie są domyślnie zwracane w wyszukiwaniach. W wersji 2 możesz ustawić zakres
drive.appdata
, a on zwraca dane aplikacji z metodyfiles.list
i metodychanges.list
, ale spowalnia to działanie. W wersji 3 określasz zakresdrive.appdata
, a także parametr zapytaniaspaces=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ń metodachanges.list
zwraca wartośćnewStartPageToken
. - Metody aktualizacji odrzucają teraz żądania, które określają pola, których nie można zapisać.
- Pola
exportFormats
iimportFormats
w zasobieabout
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
appdata
iappfolder
w wersji 2 są teraz dostępne jakoappDataFolder
w wersji 3. - Zasób
properties
został usunięty z wersji 3. Zasóbfiles
ma poleproperties
, które zawiera prawdziwe pary klucz-wartość. Poleproperties
zawiera właściwości publiczne, a poleappProperties
– prywatne, więc pole widoczności nie jest potrzebne. - Pole
modifiedTime
w zasobiefiles
jest aktualizowane za każdym razem, gdy ktoś zmodyfikuje plik. W wersji 2 polemodifiedDate
można było zmienić tylko podczas aktualizacji, jeśli ustawisz polesetModifiedDate
. - Pole
viewedByMeTime
w zasobiefiles
nie jest aktualizowane automatycznie. - Aby importować formaty Dokumentów Google, musisz ustawić odpowiednią wartość docelową
mimeType
w 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 w adresie URL podanym w uprawnieniu
files.update
dla elementu podrzędnego występuje parametr?removeParents=parent_id
.
- W wersji 2 możesz użyć elementu
Inne różnice
Nazwy pól i parametrów są inne w wersji 3. Oto kilka przykładów:
- Właściwość
name
zastępujetitle
w zasobiefiles
. Time
to przyrostek dla wszystkich pól daty i godziny zamiastDate
.- Operacje na listach nie używają pola
items
do przechowywania zbioru wyników. Typ zasobu udostępnia pole wyników (np.files
lubchanges
).