Руководство по сравнению Drive API v2 и v3

Последняя версия 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 теперь в v3 appDataFolder .
  • Ресурс 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-адресе.

Другие различия

Названия полей и параметров в версии 3 отличаются. Вот несколько примеров:

  • Свойство name заменяет title в ресурсе files .
  • Суффиксом для всех полей даты и времени вместо Date является Time .
  • Операции со списками не используют поле items для хранения результирующего набора. Тип ресурса предоставляет поле для результатов (например, files или changes ).