La versione più recente dell'API Google Drive è la 3. Le prestazioni nella versione 3 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 possibilità di eseguire la migrazione alla versione 3. Per eseguire la migrazione, consulta 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 API Drive v2 e v3.
Se vuoi continuare a utilizzare la versione 2, consulta l'aggiornamento della Guida all'API Drive 2 per scoprire come alcune istruzioni nelle guide della versione 3 devono essere modificate per gli sviluppatori della versione 2.
Per scoprire di più sui miglioramenti della versione 3 dell'API Drive, puoi guardare il seguente video degli ingegneri di Google che parlano del nuovo design dell'API.
Miglioramenti alla versione 3
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:
- Per impostazione predefinita, le ricerche di file e Drive condivisi non restituiscono risorse complete, 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 all'API Drive. - Le risorse con funzionalità duplicate sono state rimosse. Alcuni esempi:
- Il metodo
files.list
offre la stessa funzionalità delle raccolteChildren
eParents
, pertanto queste ultime sono state rimosse dalla versione 3. - I metodi
Realtime.*
sono stati rimossi.
- Il metodo
- I dati dell'app non vengono restituiti per impostazione predefinita nelle ricerche. Nella versione 2, 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 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. Anziché modificare gli ID, 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
della versione 2 nella risorsaabout
sono elenchi di formati di importazione o esportazione consentiti. Nella versione 3, sono mappe di tipi MIME di possibili destinazioni per tutte le importazioni o esportazioni supportate. - Gli alias
appdata
eappfolder
della versione v2 ora sonoappDataFolder
nella versione v3. - La risorsa
properties
viene rimossa dalla versione 3. La risorsafiles
contiene il campoproperties
che contiene coppie chiave-valore vere. Il campoproperties
contiene proprietà pubbliche e il campoappProperties
contiene proprietà private, pertanto il campo 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 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, 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 viene rimosso. - Alcune funzionalità erano disponibili all'interno della risorsa richiesta, ma ora sono 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
per il child 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 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
).