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 das diferenças entre as versões, consulte a referência de comparação das APIs Drive v2 e v3.
Se 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 desenvolvedores da v2.
Para saber mais sobre as melhorias da API Drive v3, assista o vídeo a seguir, em que engenheiros do Google discutem o novo design da API.
Melhorias na V3
Para otimizar a performance 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. Para mais detalhes sobre
fields, consulte os métodosfiles.listedrives.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 com 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 de apps 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.liste do métodochanges.list, mas isso reduz a performance. Na v3, você define o escopodrive.appdatae 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 Google, use o método
files.export. - O comportamento do método
changes.listé diferente. Em vez de IDs de mudança, use tokens de página opacos. Para fazer uma pesquisa na coleção de mudanças, primeiro chame o métodochanges.getStartPageTokenpara 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. O recursofilestem o campoproperties, que contém pares de chave-valor verdadeiros. O campopropertiescontém propriedades públicas, e o campoappPropertiescontém propriedades privadas. 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.
- Os leitores e comentaristas não podem ver as permissões.
- O alias
mepara permissões é 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 principal. - Na v3, você usa
files.updatena criança com?removeParents=parent_idno URL.
- Na v2, é possível usar
Outras diferenças
Os nomes dos 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.