L'ultima versione dell'API di Google Drive è la v3. Nella versione 3 le prestazioni sono migliori perché le ricerche restituiscono solo un sottoinsieme di campi. Utilizza la versione corrente, a meno che non ti serva la raccolta v2. Se utilizzi la versione 2, valuta la migrazione alla versione 3. Per eseguire la migrazione, vedi Eseguire la migrazione all'API Drive v3. Per un elenco completo delle differenze tra le versioni, consulta la documentazione di riferimento per il confronto tra le versioni 2 e 3 delle API Drive.
Se vuoi continuare a utilizzare la versione 2, consulta l'emendamento Guida all'API Drive v2 per scoprire come modificare alcune istruzioni della guida per la versione 3 per gli sviluppatori della versione 2.
Per saperne di più sui miglioramenti dell'API Drive v3, puoi guardare il seguente video degli ingegneri di Google che illustra il nuovo design dell'API.
Miglioramenti V3
Per ottimizzare le prestazioni e ridurre la complessità del comportamento dell'API, la versione 3 offre questi miglioramenti rispetto alla versione precedente dell'API:
- Per impostazione predefinita, le ricerche di file e Drive condivisi non restituiscono risorse complete,
ma viene restituito solo un sottoinsieme di campi di uso comune. Per maggiori dettagli su
fields
, consulta i metodifiles.list
edrives.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 dell'API Drive. - Le risorse con funzionalità duplicate sono state rimosse. Ecco alcuni esempi:
- Il metodo
files.list
svolge le stesse funzionalità 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 v2 puoi impostare l'ambito
drive.appdata
, che restituisce i dati dell'applicazione dal metodofiles.list
e dal metodochanges.list
, ma rallenta le prestazioni. Nella versione 3, imposti l'ambitodrive.appdata
e imposti anche il parametro di queryspaces=appDataFolder
per richiedere i dati dell'applicazione. - Tutte le operazioni di aggiornamento utilizzano PATCH anziché PUT.
- Per esportare documenti Google, utilizza il metodo
files.export
. - Il comportamento del metodo
changes.list
è diverso. Invece degli ID modifica, usa i 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 di tipo MIME di possibili target a tutte le importazioni o le esportazioni supportate. - Gli alias v2
appdata
eappfolder
ora sonoappDataFolder
nella v3. - La risorsa
properties
è stata rimossa dalla versione 3. La risorsafiles
ha il campoproperties
contenente coppie chiave-valore vere. Il campoproperties
contiene proprietà pubbliche, mentre il campoappProperties
contiene proprietà private, per cui il campo relativo alla visibilità non è necessario. - Il campo
modifiedTime
nella risorsafiles
viene aggiornato l'ultima volta che un utente ha modificato il file. Nella versione 2, il campomodifiedDate
era modificabile solo al momento dell'aggiornamento se si impostava il camposetModifiedDate
. - Il campo
viewedByMeTime
nella risorsafiles
non si aggiorna automaticamente. - Per importare i formati di Documenti Google, imposta la destinazione
mimeType
appropriata nel corpo della risorsa. Nella versione 2, imposti?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 è stato rimosso. - Alcune funzionalità erano disponibili come parte della risorsa della richiesta, ma sono invece disponibili come parametro di 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
nell'istanza secondaria con?removeParents=parent_id
nell'URL.
- Nella versione 2, puoi utilizzare
Altre differenze
I campi e i nomi 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 sugli elenchi non utilizzano il campo
items
per contenere il set di risultati. Il tipo di risorsa fornisce un campo per i risultati, ad esempiofiles
ochanges
.