Questo documento descrive come eseguire la migrazione del codice utilizzando l'API Drive per la gestione delle autorizzazioni all'API Data Studio. Per gli endpoint API Drive comuni, mostra il codice API Data Studio corrispondente.
File
Per gli endpoint dei file dell'API Drive, l'API Data Studio ha solo un endpoint equivalente
per l'endpoint Files: list.
Elenco
| API | Metodo | Endpoint |
|---|---|---|
| Drive | POST |
/drive/v3/files |
| Data Studio | GET |
/v1/assets:search |
Confronto:
Drive
const oAuthToken = '123' // This should be replaced with a valid OAuth token.
fetch(`https://www.googleapis.com/drive/v3/files`, {
headers: {
Authorization: `Bearer ${oAuthToken}`
},
method: "POST",
})
Data Studio
const oAuthToken = '123' // This should be replaced with a valid OAuth token.
fetch(`https://datastudio.googleapis.com/v1/assets:search?assetTypes={ASSET_TYPE}`, {
headers: {
Authorization: `Bearer ${oAuthToken}`
}
})
Vedi Cerca asset.
Autorizzazioni
Crea, elimina e ottieni
| API | Metodo | Endpoint |
|---|---|---|
| Drive | POST |
/drive/v3/files/fileId/permissions |
| Drive | DELETE |
/drive/v3/files/fileId/permissions/permissionId |
| Drive | GET |
/drive/v3/files/fileId/permissions/permissionId |
Non esistono endpoint corrispondenti nell'API Data Studio per la gestione di più oggetti Permissions. Esiste un solo oggetto delle autorizzazioni per un asset Data Studio ed è sempre presente.
- Per rimuovere una persona da un asset, consulta Revocare tutte le autorizzazioni.
- Per aggiungere qualcuno a un asset, vedi Aggiungere membri.
- Per visualizzare un oggetto delle autorizzazioni per una risorsa, vedi get permissions.
Elenco
Non esiste una corrispondenza 1:1 tra Drive e Data Studio, ma gli endpoint hanno scopi simili. La differenza principale è che un file di Drive può avere molti oggetti di autorizzazione, mentre Data Studio ne ha esattamente uno.
| API | Metodo | Endpoint |
|---|---|---|
| Drive | GET |
/drive/v3/files/fileId/permissions |
| Data Studio | GET |
/v1/assets/assetId/permissions |
Confronto:
Drive
Il seguente codice elenca tutti gli oggetti delle autorizzazioni per l'API Drive. A seconda del codice, puoi chiamare questo metodo più volte utilizzando i token di paginazione (come mostrato) per assicurarti di visualizzare tutte le autorizzazioni impostate per un file.
const fileId = '123'; // This should be replaced with a valid Drive ID.
const oAuthToken = '123'; // This should be replaced with a valid OAuth token.
let nextPageToken = undefined;
let permissions = [];
do {
const permissionsData = await fetch(`https://www.googleapis.com/drive/v3/files/${fileId}/permissions`, {
headers: {
Authorization: `Bearer ${oAuthToken}`
}
});
nextPageToken = permissionsData.nextPageToken;
permissions = permissions.concat(permissionsData.permissions)
} while (nextPageToken !== undefined);
Data Studio
Poiché esiste un solo oggetto di autorizzazione per una risorsa Data Studio, non devi tenere conto della paginazione.
const oAuthToken = '123' // This should be replaced with a valid OAuth token.
const assetId = '123' // This should be replaced with a valid asset ID.
fetch(`https://datastudio.googleapis.com/v1/assets/{ASSET_ID}/permissions`, {
headers: {
Authorization: `Bearer ${oAuthToken}`
}
}
Vedi ottenere le autorizzazioni.
Aggiorna
Per l'aggiornamento delle autorizzazioni, le API Data Studio e Drive hanno funzionalità molto simili. La differenza principale è che non puoi impostare un expirationTime per un'autorizzazione di Data Studio.
| API | Metodo | Endpoint |
|---|---|---|
| Drive | PATCH |
/drive/v3/files/fileId/permissions/permissionId |
| Data Studio | PATCH |
/v1/assets/assetId/permissions |
Confronto:
Drive
const fileId = '123'; // This should be replaced with a valid Drive ID.
const oAuthToken = '123'; // This should be replaced with a valid OAuth token.
const newPermissionsObject = {
expirationTime: '...',
role: 'owner', // Or any other option
}
fetch(`https://www.googleapis.com/drive/v3/files/${fileId}/permissions/permissionId`, {
headers: {
Authorization: `Bearer ${oAuthToken}`
},
method: "PATCH",
body: JSON.stringify(newPermissionsObject)
})
Data Studio
const oAuthToken = '123' // This should be replaced with a valid OAuth token.
const assetId = '123' // This should be replaced with a valid asset ID.
const newPermissionsObject = {
permissions: {
//...
}
}
fetch(`https://datastudio.googleapis.com/v1/assets/${assetId}/permissions`, {
headers: {
Authorization: `Bearer ${oAuthToken}`
},
method: "PATCH",
body: JSON.stringify({
name: assetId,
permissions: newPermissionsObject
})
})
Per alternative specifiche per casi d'uso, vedi: