A versão mais recente da API Google Drive é a v3. O desempenho na v3 é melhor porque as pesquisas só retornam um subconjunto de campos. Use a versão atual, a menos que você precise da 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 das diferenças de versão, consulte a referência de comparação da API Drive v2 e v3.
Se você quiser continuar usando a v2, consulte o Guia para a alteração da API Drive v2 para saber como algumas instruções nos guias da v3 precisam ser alteradas para desenvolvedores da v2.
Para saber mais sobre as melhorias da API Drive v3, assista ao vídeo a seguir de engenheiros do Google discutindo 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.liste o métododrives.list. - Quase todos os métodos que retornam uma resposta agora exigem o parâmetro
fields. Para uma lista de todos os métodos que exigemfields, consulte a referência da API Drive. - Os recursos que têm recursos duplicados foram removidos. Alguns exemplos:
- O método
files.listrealiza a mesma funcionalidade que as coleçõesChildreneParents. 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, e ele retorna dados do aplicativo dofiles.listmétodo e dochanges.listmétodo, mas isso diminui o desempenho. Na v3, você define o escopodrive.appdatae também o parâmetro de consultaspaces=appDataFolderpara solicitar dados do aplicativo. - Todas as operações de atualização usam PATCH em vez de PUT.
- Para exportar documentos do Google, use o
files.exportmétodo. - O comportamento do método
changes.listé diferente. Em vez de IDs de mudança, use tokens de página opacos. Para consultar a coleção de mudanças, primeiro chame ochanges.getStartPageTokenmétodo para o valor inicial. Para consultas subsequentes, o métodochanges.listretorna o valornewStartPageToken. - Os métodos de atualização agora rejeitam solicitações que especificam campos não graváveis.
- Os campos
exportFormatseimportFormatsda v2 no recursoaboutsã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 compatíveis. - Os aliases
appdataeappfolderda v2 agora sãoappDataFolderna v3. - O recurso
propertiesfoi removido da v3. Ofilesrecurso tem opropertiescampo que contém pares de chave-valor verdadeiros. O campopropertiescontém propriedades públicas, e o campoappPropertiescontém propriedades particulares. Portanto, o campo de visibilidade não é necessário. - O campo
modifiedTimeno recursofilesatualiza a última vez que alguém modificou o arquivo. Na v2, o campomodifiedDatesó era mutável na atualização se você definisse o camposetModifiedDate. - O campo
viewedByMeTimeno recursofilesnão é atualizado automaticamente. - Para importar formatos do Google Docs, defina o
mimeTypede 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.
- Leitores e comentaristas não podem visualizar permissões.
- O alias
mepara permissões foi removido. - Algumas funcionalidades estavam disponíveis como parte do recurso de solicitação, mas agora estão disponíveis como um parâmetro de solicitação. Exemplo:
- Na v2, é possível usar
children.deletepara remover um arquivo filho de uma pasta mãe. - Na v3, você usa
files.updateno filho com?removeParents=parent_idno 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
namesubstituititleno 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
itemspara conter o conjunto de resultados. O tipo de recurso fornece um campo para os resultados (comofilesouchanges).