dernières news, tutoriels, actualités, communautés

Utilisation de l’API REST de Tableau 10 en C#

07/09/2016

L’API REST de Tableau permet de gérer par programmation les ressources de Tableau Server.

 

Par exemple, celle-ci va lister les utilisateurs, accorder des permissions, ajouter ou télécharger les classeurs ou les sources de données.

 

Le lien suivant présente les fonctionnalités complètes de cette API :

http://onlinehelp.tableau.com/v10.0/api/rest_api/en-us/help.htm#REST/rest_api.htm

 

Ce tutoriel va décrire comment se connecter à un site Tableau et télécharger l’ensemble des classeurs de celui-ci.

 

L’environnement de développement utilisé est Visual studio.

Vous pouvez la télécharger depuis le lien suivant : https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx

 

La version du framework utilisée dans ce tutoriel est la 4.5.

 

Création de la solution sous Visual Studio

 

Créer une nouvelle application console depuis Visual Studio.

 

 

 

Installer le package Microsoft.AspNet.WebApi.Client depuis le gestionnaire des packages.

 

 

 

Ajoutons la classe ts-api_2_3. Cette classe se génère de la façon suivante

 

Télécharger l’API « REST API XML Schema » depuis le site suivant

 

https://onlinehelp.tableau.com/current/api/rest_api/en-us/help.htm#REST/rest_api_concepts_schema.htm

 

Dans notre exemple nous allons prendre le fichier ts-api_2_3.xsd correspondant à la version 10 de Tableau Server.

 

Une fois le fichier téléchargé, il vous suffit d’ouvrir l’invite de commande de Visual Studio et de lancer la commande suivante xsd ts-api_2_3.xsd /c afin de générer la classe associée

 

 

 

 

Dans la suite de la démonstration, nous allons utiliser la classe HttpClient qui permet de rendre très simple les appels GET / POST.

 

Ce code initialise l’url utilisée pour les requêtes http et ajoute les headers « application/xml » et « application/octet-stream » pour indiquer au server de renvoyer ces données selon ces formats.

 

Authentification

La première étape est de s’authentifier au serveur Tableau pour récupérer le token. Ce token va être utile pour les prochains appels à cette API.

La méthode de SignIn nécessite de lui passer les informations suivantes en POST.

 

 

<tsRequest>

  <credentials name="username" password="password" >

    <site contentUrl="content-url" />

  </credentials>

</tsRequest>

 

 

Le code ci-dessous réalise cette opération.

 

 

 

 

Nous avons également besoin de créer une classe CustomXmlMediaTypeFormatter afin d’omettre la ligne d’entête <?xml version="1.0" encoding="iso-8859-1"?>

 

 

 

Nous pouvons récupérer le contenu grâce à la méthode ReadAsAsync et ensuite parser le retour en objet de l’API.

 

 

 

Récupérer la liste des classeurs

 

L’étape suivante consiste à récupérer la liste des classeurs disponibles.

 

 

 

 

 

 

Télécharger les classeurs

 

Et enfin la dernière étape consiste à effectuer le téléchargement des classeurs.

 

 

 

 

 

 

A noter que pour déterminer l’extension du classeur .twbx ou twb, il faut analyser le type de la réponse.

 

Le code source est disponible depuis le lien suivant :

https://1drv.ms/u/s!AtN8l-eVx5AxgoB9B768CLaKAEWQag

 

 

 

Please reload

Derniers Articles
RSS Feed
Please reload

Archive
Please reload

  • Grey Instagram Icon

Design by Actinvision

Legal

Copyright © 2017