Guía de comparación de la API de Drive v2 y v3

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 devuelven un subconjunto de campos. Usa la versión actual, a menos que necesites la colección v2. Si usas la versión 2, considera migrar a la versión 3. Para migrar, consulta Migra a la API de Drive v3. Para obtener una lista completa de las diferencias entre las versiones, consulta la referencia de comparación de las APIs de Drive v2 y v3.

Si deseas seguir usando la versión 2, consulta la modificación de la Guía de la API de Drive v2 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 de la versión 3 de la API de Drive, puedes mirar el siguiente video en el que los ingenieros de Google analizan el nuevo diseño de la API.

Mejoras en la versión 3

Para optimizar el rendimiento y reducir la complejidad del comportamiento de la API, la versión 3 proporciona las siguientes mejoras en comparación con la versión anterior de la API:

  • Las búsquedas de archivos y unidades compartidas no devuelven recursos completos de forma predeterminada, sino solo un subconjunto de campos de uso común. Para obtener más detalles sobre fields, consulta el método files.list y el método drives.list.
  • Ahora, casi todos los métodos que devuelven una respuesta requieren el parámetro fields. Para obtener una lista de todos los métodos que requieren fields, 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 cumple la misma función que las colecciones Children y Parents, por lo que se quitan de la versión 3.
    • Se quitaron los métodos Realtime.*.
  • Los datos de la app no se muestran de forma predeterminada en las búsquedas. En la versión 2, puedes establecer el alcance drive.appdata, y este devuelve datos de la aplicación desde el método files.list y el método changes.list, pero ralentiza el rendimiento. En la versión 3, estableces el alcance drive.appdata y también el parámetro de consulta spaces=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 IDs de cambio, usa tokens de página opacos. Para sondear la recopilación de cambios, primero llama al método changes.getStartPageToken para obtener el valor inicial. Para las consultas posteriores, el método changes.list devuelve el valor newStartPageToken.
  • Los métodos de actualización ahora rechazan las solicitudes que especifican campos no grabables.
  • Los campos exportFormats y importFormats de la versión 2 del recurso about son listas de formatos de importación o exportación permitidos. En la versión 3, son mapas de tipos de MIME de posibles destinos para todas las importaciones o exportaciones admitidas.
  • Los alias appdata y appfolder de la versión 2 ahora son appDataFolder en la versión 3.
  • El recurso properties se quitó de la versión 3. El recurso files tiene el campo properties que contiene pares clave-valor verdaderos. El campo properties contiene propiedades públicas, y el campo appProperties contiene propiedades privadas, por lo que no se necesita el campo de visibilidad.
  • El campo modifiedTime del recurso files se actualiza la última vez que alguien modificó el archivo. En la versión 2, el campo modifiedDate solo se podía modificar en la actualización si configurabas el campo setModifiedDate.
  • El campo viewedByMeTime del recurso files no se actualiza automáticamente.
  • Para importar formatos de Documentos de Google, debes establecer el mimeType de destino adecuado en el cuerpo del recurso. En la versión 2, debes establecer ?convert=true.
  • Las operaciones de importación devuelven un error 400 si no se admite el formato.
  • Los lectores y comentaristas no pueden ver los permisos.
  • Se quitó el alias me para los permisos.
  • Algunas funciones estaban disponibles como parte del recurso de solicitud, pero ahora están disponibles 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 principal.
    • En la versión 3, se usa files.update en el elemento secundario con ?removeParents=parent_id en la URL.

Otras diferencias

Los nombres de los campos y los parámetros son diferentes en la versión 3. Aquí encontrarás algunos ejemplos:

  • La propiedad name reemplaza a title en el recurso files.
  • Time es el sufijo para todos los campos de fecha y hora en lugar de Date.
  • 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 (como files o changes).