En este documento, se describe cómo migrar código de la API de Drive para la administración de permisos a la API de Data Studio. Para los extremos comunes de la API de Drive, se muestra el código de la API de Data Studio correspondiente.
Archivos
En el caso de los extremos de archivos de la API de Drive, la API de Data Studio solo tiene un extremo equivalente para el extremo Files: list.
Lista
| API | Método | Extremo |
|---|---|---|
| Drive | POST |
/drive/v3/files |
| Data Studio | GET |
/v1/assets:search |
Comparación:
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}`
}
})
Consulta recursos de búsqueda.
Permisos
Create, Delete, And Get
| API | Método | Extremo |
|---|---|---|
| Drive | POST |
/drive/v3/files/fileId/permissions |
| Drive | DELETE |
/drive/v3/files/fileId/permissions/permissionId |
| Drive | GET |
/drive/v3/files/fileId/permissions/permissionId |
No hay endpoints correspondientes en la API de Data Studio para administrar varios objetos Permissions. Solo hay un objeto de permisos para un activo de Data Studio, y siempre existe.
- Para quitar a una persona de un activo, consulta cómo revocar todos los permisos
- Para agregar a alguien a un activo, consulta cómo agregar miembros.
- Para ver un objeto de permisos de un activo, consulta obtener permisos.
Lista
No hay una correspondencia 1 a 1 entre Drive y Data Studio, pero los extremos cumplen objetivos similares. La principal diferencia es que un archivo de Drive puede tener muchos objetos de permisos, mientras que Data Studio tiene exactamente uno.
| API | Método | Extremo |
|---|---|---|
| Drive | GET |
/drive/v3/files/fileId/permissions |
| Data Studio | GET |
/v1/assets/assetId/permissions |
Comparación:
Drive
El siguiente código enumera todos los objetos de permisos de la API de Drive. Según tu código, puedes llamar a este método varias veces con tokens de paginación (como se muestra) para asegurarte de que puedes ver todos los permisos establecidos para un archivo.
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
Como solo hay un objeto de permiso para un activo de Data Studio, no tienes que tener en cuenta la paginación.
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}`
}
}
Consulta cómo obtener permisos.
Actualizar
Las APIs de Data Studio y Drive tienen una funcionalidad muy similar para actualizar permisos. La principal diferencia es que no puedes establecer un expirationTime en un permiso de Data Studio.
| API | Método | Extremo |
|---|---|---|
| Drive | PATCH |
/drive/v3/files/fileId/permissions/permissionId |
| Data Studio | PATCH |
/v1/assets/assetId/permissions |
Comparación:
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
})
})
Para obtener alternativas específicas de casos de uso, consulta los siguientes vínculos: