La versión más reciente de la API de Google Drive es la v3. El rendimiento en la versión 3 es mejor porque las búsquedas solo muestran un subconjunto de campos. Usa la versión actual, a menos que necesites la colección v2. Si usas v2, considera migrar a v3. Si deseas realizar la migración, consulta Migrar a la versión 3 de la API de Drive. Para obtener una lista completa de las diferencias de versión, consulta la referencia de comparación de la versión 2 y 3 de la API de Drive.
Si deseas seguir usando la versión 2, consulta la enmienda de la Guía para la versión 2 de la Guía de Drive para obtener información sobre cómo se deben modificar algunas instrucciones de las guías de la versión 3 para los desarrolladores de la versión 2.
Para obtener más información sobre las mejoras en la versión 3 de la API de Drive, puedes mirar el siguiente video de ingenieros de Google sobre el nuevo diseño de la API.
Mejoras en la V3
Para optimizar el rendimiento y reducir la complejidad del comportamiento de la API, la v3 proporciona estas mejoras con respecto a la versión anterior de la API:
- Las búsquedas de archivos y unidades compartidas no muestran los recursos completos de forma predeterminada; solo se muestra un subconjunto de campos de uso común. Para obtener más detalles sobre
fields
, consulta los métodosfiles.list
ydrives.list
. - Casi todos los métodos que muestran una respuesta ahora requieren el parámetro
fields
. Para obtener una lista de todos los métodos que requierenfields
, consulta la referencia de la API de Drive. - Se quitaron los recursos que tienen capacidades duplicadas. Estos son algunos ejemplos:
- El método
files.list
logra la misma funcionalidad que las coleccionesChildren
yParents
, por lo que se quitan de la versión 3. - Se quitaron los métodos
Realtime.*
.
- El método
- Los datos de app no se muestran de forma predeterminada en las búsquedas. En la versión 2, puedes configurar el permiso
drive.appdata
y muestra datos de aplicación del métodofiles.list
y el métodochanges.list
, pero ralentiza el rendimiento. En la versión 3, se establece el permisodrive.appdata
y también se establece el parámetro de consultaspaces=appDataFolder
para solicitar datos de la aplicación. - Todas las operaciones de actualización usan PATCH en lugar de PUT.
- Para exportar documentos de Google, usa el método
files.export
. - El comportamiento del método
changes.list
es diferente. En lugar de los IDs de cambio, usa tokens de página opacos. Para sondear la colección de cambios, primero llama al métodochanges.getStartPageToken
para obtener el valor inicial. En consultas posteriores, el métodochanges.list
muestra el valornewStartPageToken
. - Los métodos de actualización ahora rechazan las solicitudes que especifican campos que no admiten escritura.
- Los campos
exportFormats
yimportFormats
de la versión 2 del recursoabout
son listas de los formatos de importación o exportación permitidos. En la versión 3, son mapas de tipos de MIME de destinos posibles para todas las importaciones o exportaciones admitidas. - Los alias
appdata
yappfolder
de la versión 2 ahora sonappDataFolder
en la versión 3. - El recurso
properties
se quitó de la versión 3. El recursofiles
tiene el campoproperties
, que contiene pares clave-valor verdaderos. El campoproperties
contiene propiedades públicas, y el campoappProperties
contiene propiedades privadas, por lo que el campo de visibilidad no es necesario. - El campo
modifiedTime
del recursofiles
actualiza la última vez que alguien modificó el archivo. En la versión 2, el campomodifiedDate
solo era mutable durante la actualización si configuraste el camposetModifiedDate
. - El campo
viewedByMeTime
del recursofiles
no se actualiza automáticamente. - Para importar formatos de Documentos de Google, configura el
mimeType
de destino apropiado en el cuerpo del recurso. En la versión 2, estableces?convert=true
. - Las operaciones de importación muestran un error 400 si el formato no es compatible.
- Los lectores y comentaristas no pueden ver los permisos.
- Se quitó el alias
me
para los permisos. - Algunas funcionalidades estaban disponibles como parte del recurso de solicitud, pero sí como un parámetro de solicitud. Por ejemplo:
- En la versión 2, puedes usar
children.delete
para quitar un archivo secundario de una carpeta superior. - En la versión 3, usas
files.update
en el elemento secundario con?removeParents=parent_id
en la URL.
- En la versión 2, puedes usar
Otras diferencias
Los campos y los nombres de los parámetros son diferentes en la versión 3. Aquí encontrará algunos ejemplos:
- La propiedad
name
reemplaza atitle
en el recursofiles
. Time
es el sufijo para todos los campos de fecha y hora, en lugar deDate
.- Las operaciones de lista no usan el campo
items
para contener el conjunto de resultados. El tipo de recurso proporciona un campo para los resultados (comofiles
ochanges
).