L'ultima versione dell'API Google Drive è la v3. Le prestazioni nella v3 sono migliori perché le ricerche restituiscono solo un sottoinsieme di campi. Utilizza la versione attuale, a meno che tu non abbia bisogno della raccolta v2. Se utilizzi la v2, valuta la possibilità di eseguire la migrazione alla v3. Per eseguire la migrazione, consulta Migrazione all'API Drive v3. Per un elenco completo delle differenze tra le versioni, consulta il riferimento al confronto tra le API Drive v2 e v3.
Se vuoi continuare a utilizzare la v2, consulta l'emendamento alla Guida all'API Drive v2 per scoprire come alcune istruzioni nelle guide della v3 devono essere modificate per gli sviluppatori della v2.
Per scoprire di più sui miglioramenti dell'API Drive v3, puoi guardare il seguente video in cui gli ingegneri di Google parlano della nuova progettazione dell'API.
Miglioramenti della V3
Per ottimizzare le prestazioni e ridurre la complessità del comportamento dell'API, la versione 3 offre i seguenti miglioramenti rispetto alla versione precedente dell'API:
- Le ricerche di file e Drive condivisi non restituiscono risorse complete per impostazione predefinita,
ma solo un sottoinsieme di campi di uso comune. Per maggiori dettagli su
fields
, consulta il metodofiles.list
e il metododrives.list
. - Quasi tutti i metodi che restituiscono una risposta ora richiedono il parametro
fields
. Per un elenco di tutti i metodi che richiedonofields
, consulta il Riferimento API Drive. - Le risorse con funzionalità duplicate sono state rimosse. Alcuni esempi:
- Il metodo
files.list
svolge la stessa funzione delle raccolteChildren
eParents
, pertanto vengono rimosse dalla versione 3. - I metodi
Realtime.*
sono stati rimossi.
- Il metodo
- Per impostazione predefinita, i dati delle app non vengono restituiti nelle ricerche. Nella versione 2, puoi impostare l'ambito
drive.appdata
e restituisce i dati dell'applicazione dal metodofiles.list
e dal metodochanges.list
, ma rallenta le prestazioni. Nella v3, imposti l'ambitodrive.appdata
e anche il parametro di queryspaces=appDataFolder
per richiedere i dati dell'applicazione. - Tutte le operazioni di aggiornamento utilizzano PATCH anziché PUT.
- Per esportare i documenti Google, utilizza il metodo
files.export
. - Il comportamento del metodo
changes.list
è diverso. Anziché ID di modifica, utilizza token di pagina opachi. Per eseguire il polling della raccolta delle modifiche, chiama prima il metodochanges.getStartPageToken
per il valore iniziale. Per le query successive, il metodochanges.list
restituisce il valorenewStartPageToken
. - I metodi di aggiornamento ora rifiutano le richieste che specificano campi non scrivibili.
- I campi
exportFormats
eimportFormats
v2 nella risorsaabout
sono elenchi di formati di importazione o esportazione consentiti. Nella versione 3, sono mappe dei tipi MIME dei possibili target per tutte le importazioni o esportazioni supportate. - Gli alias v2
appdata
eappfolder
ora sonoappDataFolder
nella versione 3. - La risorsa
properties
viene rimossa dalla versione 3. La risorsafiles
ha il campoproperties
che contiene coppie chiave-valore vere. Il campoproperties
contiene proprietà pubbliche e il campoappProperties
contiene proprietà private, pertanto il campo della visibilità non è necessario. - Il campo
modifiedTime
nella risorsafiles
aggiorna l'ultima volta che qualcuno ha modificato il file. Nella v2, il campomodifiedDate
era modificabile durante l'aggiornamento solo se impostavi il camposetModifiedDate
. - Il campo
viewedByMeTime
nella risorsafiles
non viene aggiornato automaticamente. - Per importare i formati di Documenti Google, imposta il target appropriato
mimeType
nel corpo della risorsa. Nella versione 2, hai impostato?convert=true
. - Le operazioni di importazione restituiscono un errore 400 se il formato non è supportato.
- I lettori e i commentatori non possono visualizzare le autorizzazioni.
- L'alias
me
per le autorizzazioni viene rimosso. - Alcune funzionalità erano disponibili come parte della risorsa della richiesta, ma sono
invece disponibili come parametro della richiesta. Ad esempio:
- Nella versione 2, puoi utilizzare
children.delete
per rimuovere un file secondario da una cartella principale. - Nella versione 3, utilizzi
files.update
sul bambino con?removeParents=parent_id
nell'URL.
- Nella versione 2, puoi utilizzare
Altre differenze
I nomi dei campi e dei parametri sono diversi nella versione 3. Ecco alcuni esempi:
- La proprietà
name
sostituiscetitle
nella risorsafiles
. Time
è il suffisso per tutti i campi di data e ora anzichéDate
.- Le operazioni di elenco non utilizzano il campo
items
per contenere il set di risultati. Il tipo di risorsa fornisce un campo per i risultati (ad esempiofiles
ochanges
).