La versión más reciente de la API de Google Drive es la v3. El rendimiento en la v3 es mejor porque las búsquedas solo muestran un subconjunto de campos. Usa la versión actual, a menos que necesites la v2 colección. Si usas la v2, considera migrar a la v3. Para migrar, consulta Cómo migrar a la API de Drive v3. Para obtener una lista completa de las diferencias entre las versiones, consulta la referencia de comparación de la API de Drive v2 y v3.
Si deseas seguir usando la v2, consulta la Guía de enmiendas de la API de Drive v2 para obtener información sobre cómo se deben modificar algunas instrucciones de las guías de la v3 para los desarrolladores de la v2.
Para obtener más información sobre las mejoras de la API de Drive v3, puedes mirar el siguiente video de ingenieros de Google en el que se analiza el nuevo diseño de la API.
Mejoras de la v3
Para optimizar el rendimiento y reducir la complejidad del comportamiento de la API, la v3 proporciona las siguientes mejoras en comparación con la versión anterior de la API:
- Las búsquedas de archivos y unidades compartidas no muestran recursos completos de forma predeterminada. Solo se muestra un subconjunto de los campos de uso común. Para obtener más detalles sobre
fields, consulta el métodofiles.listy el métododrives.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. Aquí encontrarás algunos ejemplos:
- El método
files.listrealiza la misma funcionalidad que las coleccionesChildrenyParents, por lo que se quitan de la v3. - Se quitaron los métodos
Realtime.*.
- El método
- Los datos de la app no se muestran de forma predeterminada en las búsquedas. En la v2, puedes establecer el
drive.appdataalcance, y este muestra datos de la aplicación desde elfiles.listmétodo y elchanges.listmétodo, pero ralentiza el rendimiento. En la v3, estableces el alcancedrive.appdatay también configuras el parámetro de consultaspaces=appDataFolderpara 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
files.exportmétodo. - El comportamiento del método
changes.listes diferente. En lugar de IDs de cambio, usa tokens de página opacos. Para sondear la colección de cambios, primero llama alchanges.getStartPageTokenmétodo para obtener el valor inicial. Para las consultas posteriores, el métodochanges.listmuestra el valornewStartPageToken. - Los métodos de actualización ahora rechazan las solicitudes que especifican campos no grabables.
- Los campos
exportFormatsyimportFormatsde la v2 en elaboutrecurso son listas de formatos de importación o exportación permitidos. En la v3, son mapas de tipos MIME de posibles objetivos para todas las importaciones o exportaciones compatibles. - Los alias
appdatayappfolderde la v2 ahora sonappDataFolderen la v3. - Se quitó el recurso
propertiesde la v3. Elfilesrecurso tiene elpropertiescampo que contiene pares clave-valor verdaderos. El campopropertiescontiene propiedades públicas, y el campoappPropertiescontiene propiedades privadas, por lo que no se necesita el campo de visibilidad. - El campo
modifiedTimedel recursofilesactualiza la última vez que alguien modificó el archivo. En la v2, el campomodifiedDatesolo era mutable en la actualización si establecías el camposetModifiedDate. - El campo
viewedByMeTimedel recursofilesno se actualiza automáticamente. - Para importar formatos de Documentos de Google, debes establecer el
mimeTypede destino adecuado en el cuerpo del recurso. En la v2, 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
mepara los permisos. - Algunas funciones estaban disponibles como parte del recurso de solicitud, pero ahora están disponibles como parámetro de solicitud. Por ejemplo:
- En la v2, puedes usar
children.deletepara quitar un archivo secundario de una carpeta superior. - En la v3, usas
files.updateen el elemento secundario con?removeParents=parent_iden la URL.
- En la v2, puedes usar
Otras diferencias
Los nombres de los campos y los parámetros son diferentes en la v3. Aquí encontrarás algunos ejemplos:
- La propiedad
namereemplaza atitleen el recursofiles. Timees el sufijo para todos los campos de fecha y hora en lugar deDate.- Las operaciones de lista no usan el campo
itemspara contener el conjunto de resultados. El tipo de recurso proporciona un campo para los resultados (comofilesochanges).