Effectuer une migration depuis l'API Drive

Ce document explique comment migrer du code utilisant l'API Drive pour la gestion des autorisations vers l'API Data Studio. Pour les points de terminaison courants de l'API Drive, il indique le code d'API Data Studio correspondant.

Fichiers

Pour les points de terminaison de fichiers de l'API Drive, l'API Data Studio ne dispose que d'un point de terminaison équivalent pour le point de terminaison Files: list.

Liste

API Méthode Point de terminaison
Drive POST /drive/v3/files
Data Studio GET /v1/assets:search

Tableau comparatif :

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}`
  }
})

Consultez Rechercher des éléments.

Autorisations

Créer, supprimer et obtenir

API Méthode Point de terminaison
Drive POST /drive/v3/files/fileId/permissions
Drive DELETE /drive/v3/files/fileId/permissions/permissionId
Drive GET /drive/v3/files/fileId/permissions/permissionId

Il n'existe aucun point de terminaison correspondant dans l'API Data Studio pour gérer plusieurs objets Permissions. Il n'existe qu'un seul objet d'autorisations pour un élément Data Studio, et il existe toujours.

Liste

Il n'existe pas de correspondance directe entre Drive et Data Studio, mais les points de terminaison ont des objectifs similaires. La principale différence est qu'un fichier Drive peut avoir de nombreux objets d'autorisations, tandis que Data Studio n'en a qu'un seul.

API Méthode Point de terminaison
Drive GET /drive/v3/files/fileId/permissions
Data Studio GET /v1/assets/assetId/permissions

Tableau comparatif :

Drive

Le code suivant liste tous les objets d'autorisations pour l'API Drive. En fonction de votre code, vous pouvez appeler cette méthode plusieurs fois à l'aide de jetons de pagination (comme indiqué) pour vous assurer de voir toutes les autorisations définies pour un fichier.

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

Comme il n'existe qu'un seul objet d'autorisations pour un élément Data Studio, vous n'avez pas à tenir compte de la pagination.

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}`
  }
}

Consultez Obtenir les autorisations.

Mettre à jour

Pour la mise à jour des autorisations, les API Data Studio et Drive ont des fonctionnalités très similaires. La principale différence est que vous ne pouvez pas définir de expirationTime sur une autorisation Data Studio.

API Méthode Point de terminaison
Drive PATCH /drive/v3/files/fileId/permissions/permissionId
Data Studio PATCH /v1/assets/assetId/permissions

Tableau comparatif :

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
  })
})

Pour des alternatives spécifiques à un cas d'utilisation, consultez :