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

Последняя версия API Google Drive — v3. Производительность в версии v3 выше, поскольку поиск возвращает только подмножество полей. Используйте текущую версию, если вам не нужна коллекция v2 . Если вы используете v2, рассмотрите возможность перехода на v3. Для перехода см. раздел «Переход на API Drive v3» . Полный список различий между версиями см. в справочнике по сравнению API Drive v2 и v3 .

Если вы хотите продолжить использование версии 2, ознакомьтесь с поправкой к руководству по Drive API версии 2, чтобы узнать, как некоторые инструкции в руководствах версии 3 должны быть изменены для разработчиков версии 2.

Чтобы узнать больше об улучшениях 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 .
  • Теперь методы обновления отклоняют запросы, в которых указаны поля, недоступные для записи.
  • В версии 2 поля exportFormats и importFormats в разделе about программе" представляют собой списки допустимых форматов импорта или экспорта. В версии 3 они представляют собой карты MIME-типов возможных целевых объектов для всех поддерживаемых форматов импорта или экспорта.
  • В версии 2 псевдонимы appdata и appfolder теперь называются appDataFolder а в версии 3 — appDataFolder.
  • Ресурс properties удален из версии 3. Ресурс files содержит поле properties , в котором находятся настоящие пары ключ-значение. Поле properties содержит общедоступные свойства, а поле appProperties — закрытые свойства, поэтому поле visibility не требуется.
  • Поле 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 ).