A versão mais recente da API Google Drive é a v3. O desempenho na v3 é melhor porque as pesquisas retornam apenas um subconjunto de campos. Use a versão atual, a menos que você precise da coleção v2. Se você estiver usando a v2, considere migrar para a v3. Para migrar, consulte Migrar para a API Drive v3. Para uma lista completa de diferenças entre as versões, consulte a referência de comparação da API Drive v2 e v3.
Se você quiser continuar usando a v2, consulte a emenda do Guia da API Drive v2 para saber como algumas instruções nos guias da v3 precisam ser alteradas para os desenvolvedores da v2.
Para saber mais sobre as melhorias da API Drive v3, assista o vídeo abaixo com engenheiros do Google falando sobre o novo design da API.
Melhorias da V3
Para otimizar o desempenho e reduzir a complexidade do comportamento da API, a v3 oferece estas melhorias em relação à versão anterior da API:
- As pesquisas de arquivos e drives compartilhados não retornam recursos completos por padrão.
Apenas um subconjunto de campos usados com frequência é retornado. Para mais detalhes sobre
fields
, consulte o métodofiles.list
e o métododrives.list
. - Quase todos os métodos que retornam uma resposta agora exigem o parâmetro
fields
. Para conferir uma lista de todos os métodos que exigemfields
, consulte a referência da API Drive. - Os recursos com recursos duplicados foram removidos. Alguns exemplos:
- O método
files.list
tem a mesma funcionalidade que as coleçõesChildren
eParents
. Por isso, elas foram removidas da v3. - Os métodos
Realtime.*
foram removidos.
- O método
- Os dados do app não são retornados por padrão nas pesquisas. Na v2, é possível definir o
escopo
drive.appdata
, que retorna dados do aplicativo do métodofiles.list
e do métodochanges.list
, mas diminui a performance. Na v3, você define o escopodrive.appdata
e também define o parâmetro de consultaspaces=appDataFolder
para solicitar dados do aplicativo. - Todas as operações de atualização usam PATCH em vez de PUT.
- Para exportar documentos do Google, use o método
files.export
. - O comportamento do método
changes.list
é diferente. Em vez de mudar IDs, use tokens de página opacos. Para consultar a coleção de mudanças, primeiro chame o métodochanges.getStartPageToken
para o valor inicial. Para consultas subsequentes, o métodochanges.list
retorna o valornewStartPageToken
. - Os métodos de atualização agora rejeitam solicitações que especificam campos não graváveis.
- Os campos
exportFormats
eimportFormats
da v2 no recursoabout
são listas de formatos de importação ou exportação permitidos. Na v3, eles são mapas de tipo MIME de possíveis destinos para todas as importações ou exportações com suporte. - Os aliases
appdata
eappfolder
da v2 agora sãoappDataFolder
na v3. - O recurso
properties
foi removido da v3. O recursofiles
tem o campoproperties
que contém pares de chave-valor verdadeiros. O campoproperties
contém propriedades públicas, e o campoappProperties
contém propriedades privadas. Portanto, o campo de visibilidade não é necessário. - O campo
modifiedTime
no recursofiles
é atualizado na última vez que alguém modificou o arquivo. Na v2, o campomodifiedDate
só era mutável na atualização se você definisse o camposetModifiedDate
. - O campo
viewedByMeTime
no recursofiles
não é atualizado automaticamente. - Para importar formatos do Documentos Google, defina o
mimeType
de destino apropriado no corpo do recurso. Na v2, você define?convert=true
. - As operações de importação retornam um erro 400 se o formato não for compatível.
- Os leitores e comentaristas não podem acessar as permissões.
- O alias
me
para permissões foi removido. - Algumas funcionalidades estavam disponíveis como parte do recurso de solicitação, mas estão
disponíveis como um parâmetro de solicitação. Exemplo:
- Na v2, é possível usar
children.delete
para remover um arquivo filho de uma pasta mãe. - Na v3, você usa
files.update
na criança com?removeParents=parent_id
no URL.
- Na v2, é possível usar
Outras diferenças
Os nomes de campos e parâmetros são diferentes na v3. Veja alguns exemplos:
- A propriedade
name
substituititle
no recursofiles
. Time
é o sufixo de todos os campos de data e hora, em vez deDate
.- As operações de lista não usam o campo
items
para conter o conjunto de resultados. O tipo de recurso fornece um campo para os resultados, comofiles
ouchanges
.