Guida al confronto tra API Drive v2 e v3

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 sul 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 metodo files.list e il metodo drives.list.
  • Quasi tutti i metodi che restituiscono una risposta ora richiedono il parametro fields. Per un elenco di tutti i metodi che richiedono fields, 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 raccolte Children e Parents, pertanto queste ultime sono state rimosse dalla versione 3.
    • I metodi Realtime.* sono stati rimossi.
  • 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 metodo files.list e dal metodo changes.list, ma rallenta le prestazioni. Nella versione 3, imposti l'ambito drive.appdata e anche il parametro di query spaces=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 metodo changes.getStartPageToken per il valore iniziale. Per le query successive, il metodo changes.list restituisce il valore newStartPageToken.
  • I metodi di aggiornamento ora rifiutano le richieste che specificano campi non scrivibili.
  • I campi exportFormats e importFormats della versione 2 nella risorsa about sono elenchi di formati di importazione o esportazione consentiti. Nella versione 3, sono mappe di tipi MIME di possibili target per tutte le importazioni o esportazioni supportate.
  • Gli alias appdata e appfolder della versione v2 ora sono appDataFolder nella versione v3.
  • La risorsa properties è stata rimossa dalla versione 3. La risorsa files contiene il campo properties che contiene coppie chiave-valore vere. Il campo properties contiene proprietà pubbliche e il campo appProperties contiene proprietà private, pertanto il campo visibilità non è necessario.
  • Il campo modifiedTime nella risorsa files viene aggiornato l'ultima volta che un utente ha modificato il file. Nella versione 2, il campo modifiedDate era modificabile solo al momento dell'aggiornamento se impostavi il campo setModifiedDate.
  • Il campo viewedByMeTime nella risorsa files 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.

Altre differenze

I nomi dei campi e dei parametri sono diversi nella versione 3. Ecco alcuni esempi:

  • La proprietà name sostituisce title nella risorsa files.
  • Time è il suffisso per tutti i campi 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 esempio files o changes).