Najnowsza wersja interfejsu Google Drive API to wersja 3. Wersja 3 jest wydajniejsza, ponieważ wyszukiwania zwracają tylko podzbiór pól. Używaj bieżącej wersji, chyba że potrzebujesz kolekcji w wersji v2. Jeśli używasz wersji 2, rozważ przejście na wersję 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 wersji 2 i 3.
Jeśli chcesz nadal używać wersji 2, zapoznaj się z przewodnikiem po zmianach w interfejsie Drive API w wersji 2, aby dowiedzieć się, jak deweloperzy korzystający z wersji 2 powinni zmodyfikować niektóre instrukcje w przewodnikach dotyczących wersji 3.
Aby dowiedzieć się więcej o ulepszeniach w interfejsie Drive API w wersji 3, możesz obejrzeć ten film, w którym inżynierowie Google omawiają nowy projekt interfejsu API.
Ulepszenia w wersji 3
Aby zoptymalizować wydajność i zmniejszyć złożoność zachowania interfejsu API, w wersji 3 wprowadzono te ulepszenia w porównaniu z poprzednią wersją interfejsu API:
- Wyszukiwania plików i dysków współdzielonych domyślnie nie zwracają pełnych zasobów, tylko podzbiór najczęściej używanych pól. Więcej informacji o parametrze
fields, znajdziesz w opisach metodfiles.listidrives.list. - Prawie wszystkie metody, które zwracają odpowiedź, wymagają teraz parametru
fields. Listę wszystkich metod wymagających parametrufieldsznajdziesz w dokumentacji interfejsu Drive API. - Usunięto zasoby, które mają zduplikowane możliwości. Oto kilka przykładów:
- Metoda
files.listma taką samą funkcjonalność jak kolekcjeChildreniParents, dlatego zostały one usunięte z wersji 3. - Metody
Realtime.*zostały usunięte.
- Metoda
- Dane aplikacji nie są domyślnie zwracane w wynikach wyszukiwania. W wersji 2 możesz ustawić zakres
drive.appdataktóry zwraca dane aplikacji zfiles.listmetody ichanges.listmetody, ale spowalnia to działanie. W wersji 3 ustawiasz zakresdrive.appdatai parametr zapytaniaspaces=appDataFolder, aby poprosić o dane aplikacji. - Wszystkie operacje aktualizacji używają metody PATCH zamiast PUT.
- Aby eksportować Dokumenty Google, użyj metody
files.export. - Metoda
changes.listdziała inaczej. Zamiast identyfikatorów zmian używaj nieprzezroczystych tokenów strony. Aby sprawdzić kolekcję zmian, najpierw wywołaj metodęchanges.getStartPageToken, aby uzyskać wartość początkową. W przypadku kolejnych zapytań metodachanges.listzwraca wartośćnewStartPageToken. - Metody aktualizacji odrzucają teraz żądania, które określają pola niepodlegające zapisowi.
- Pola
exportFormatsiimportFormatsw wersji 2 w zasobieaboutto listy dozwolonych formatów importu i eksportu. W wersji 3 są to mapy typów MIME możliwych miejsc docelowych dla wszystkich obsługiwanych importów i eksportów. - Aliasy
appdataiappfolderw wersji 2 to terazappDataFolderw wersji 3. - Zasób
propertieszostał usunięty z wersji 3. Zasóbfilesma polepropertiesktóre zawiera prawdziwe pary klucz-wartość. Polepropertieszawiera właściwości publiczne, a poleappProperties– właściwości prywatne, więc pole widoczności nie jest potrzebne. - Pole
modifiedTimew zasobiefilesaktualizuje czas ostatniej modyfikacji pliku przez dowolną osobę. W wersji 2 polemodifiedDatemożna było zmieniać tylko podczas aktualizacji, jeśli ustawiono polesetModifiedDate. - Pole
viewedByMeTimew zasobiefilesnie jest aktualizowane automatycznie. - Aby importować formaty Dokumentów Google, ustaw odpowiedni docelowy
mimeTypew treści zasobu. W wersji 2 ustawiasz?convert=true. - Operacje importu zwracają błąd 400, jeśli format nie jest obsługiwany.
- Osoby z uprawnieniami do czytania i komentowania nie mogą wyświetlać uprawnień.
- Alias
medla uprawnień został usunięty. - Niektóre funkcje były dostępne w ramach zasobu żądania, ale teraz są dostępne jako parametr żądania. Na przykład:
- W wersji 2 możesz użyć
children.delete, aby usunąć plik podrzędny z folderu nadrzędnego. - W wersji 3 używasz
files.updatew pliku podrzędnym z parametrem?removeParents=parent_idw adresie URL.
- W wersji 2 możesz użyć
Inne różnice
W wersji 3 nazwy pól i parametrów są inne. Oto kilka przykładów:
- W zasobie
fileswłaściwośćnamezastępuje właściwośćtitle. - Wszystkie pola daty i godziny mają teraz sufiks
TimezamiastDate. - Operacje list nie używają pola
itemsdo przechowywania zbioru wyników. Typ zasobu udostępnia pole dla wyników (np.fileslubchanges).