Последняя версия API Google Drive — v3. Производительность в v3 выше, поскольку поиск возвращает только подмножество полей. Используйте текущую версию, если вам не нужна коллекция v2 . Если вы используете v2, рассмотрите возможность перехода на v3. Чтобы перейти на API Drive, см. статью «Миграция на API Drive v3» . Полный список различий между версиями см. в справочнике по сравнению API Drive v2 и v3 .
Если вы хотите продолжить использование v2, ознакомьтесь с поправкой к Руководству по Drive API v2, чтобы узнать, как следует изменить некоторые инструкции в руководствах v3 для разработчиков v2.
Чтобы узнать больше об улучшениях Drive API v3, вы можете посмотреть следующее видео от инженеров Google, в котором они обсуждают новый дизайн API.
Улучшения V3
Для оптимизации производительности и снижения сложности поведения API в версии 3 реализованы следующие улучшения по сравнению с предыдущей версией API:
- Поиск файлов и общих дисков по умолчанию не возвращает все ресурсы, возвращается только подмножество часто используемых полей. Подробнее о
fields
см. в методахfiles.list
иdrives.list
. - Почти все методы, возвращающие ответ, теперь требуют параметр
fields
. Список всех методов, требующихfields
, см. в справочнике по API Drive . - Ресурсы с дублирующими возможностями были удалены. Вот несколько примеров:
- Метод
files.list
выполняет ту же функциональность, что и коллекцииChildren
иParents
, поэтому они удалены из версии 3. - Методы
Realtime.*
были удалены.
- Метод
- Данные приложения не возвращаются по умолчанию при поиске. В версии 2 можно задать область действия
drive.appdata
, и она будет возвращать данные приложения из методовfiles.list
иchanges.list
, но это снижает производительность. В версии 3 нужно задать область действияdrive.appdata
и указать параметр запросаspaces=appDataFolder
для запроса данных приложения. - Все операции обновления используют PATCH вместо PUT.
- Для экспорта документов Google используйте метод
files.export
. - Метод
changes.list
работает иначе. Вместо идентификаторов изменений используйте непрозрачные токены страниц. Чтобы опросить коллекцию изменений, сначала вызовите методchanges.getStartPageToken
для получения начального значения. Для последующих запросов методchanges.list
возвращает значениеnewStartPageToken
. - Методы обновления теперь отклоняют запросы, в которых указаны поля, недоступные для записи.
- Поля
exportFormats
иimportFormats
в ресурсеabout
версии 2 представляют собой списки допустимых форматов импорта и экспорта. В версии 3 это сопоставления типов MIME возможных целевых форматов для всех поддерживаемых форматов импорта и экспорта. - Псевдонимы
appdata
иappfolder
v2 теперь в v3appDataFolder
. - Ресурс
properties
удалён из версии 3. Ресурсfiles
содержит полеproperties
, содержащее пары «ключ-значение». Полеproperties
содержит общедоступные свойства, а полеappProperties
— закрытые свойства, поэтому поле видимости не требуется. - Поле
modifiedTime
в ресурсеfiles
обновляет время последнего изменения файла. В версии 2 полеmodifiedDate
можно было изменять при обновлении только при установке поляsetModifiedDate
. - Поле
viewedByMeTime
в ресурсеfiles
не обновляется автоматически. - Для импорта форматов Google Docs необходимо указать соответствующий целевой
mimeType
в теле ресурса. В версии 2 необходимо задать?convert=true
. - Операции импорта возвращают ошибку 400, если формат не поддерживается.
- Читатели и комментаторы не могут просматривать разрешения.
- Псевдоним
me
для разрешений удален. - Некоторые функции были доступны как часть ресурса запроса, но теперь доступны как параметр запроса. Например:
- В версии 2 можно использовать
children.delete
для удаления дочернего файла из родительской папки. - В версии 3 вы используете
files.update
для дочернего элемента с?removeParents=parent_id
в URL-адресе.
- В версии 2 можно использовать
Другие различия
Названия полей и параметров в версии 3 отличаются. Вот несколько примеров:
- Свойство
name
заменяетtitle
в ресурсеfiles
. - Суффиксом для всех полей даты и времени вместо
Date
являетсяTime
. - Операции со списками не используют поле
items
для хранения результирующего набора. Тип ресурса предоставляет поле для результатов (например,files
илиchanges
).