Contenidos
Facteur est un outil précieux pour travailler avec les API, en particulier lors des tests et des demandes ad hoc en dehors d'une solution de production automatisée. En ce qui concerne les domaines dans lesquels un développeur Power BI pourrait trouver Postman utile, il se situe quelque part entre les deux «Essayez-le» de la documentation et une solution plus digne de la production qui intègre des outils tels que Azure DevOps, Logic Apps / Power Automate, un connecteur Power BI personnalisé, etc.
Les idées de cette publication prolongent une message original par Carl de Souza. Carl montre comment obtenir un jeton d'accès OAuth2, mais il le fait avec des valeurs codées en dur. Les demandes d'API supplémentaires utilisent le jeton de la réponse d'origine, mais vous fournissez également manuellement ce jeton aux appels d'API ultérieurs.
Les étapes suivantes supposent que vous êtes déjà familiarisé avec les bases de Postman et du API Power BI. Inscrivez-vous à un Application Power BI Azure Active Directory si vous n'en avez pas déjà un, et vous devriez également avoir la portée appropriée définie pour les tâches souhaitées.
Ajouter des variables
Extension de la technique Postman à utiliser variables au lieu de valeurs codées en dur, cela rend l'effort plus automatique et plus pratique. En particulier, lors du passage du jeton d'accès à une variable pour réutilisation dans d'autres requêtes API, un copier-coller manuel »[jeton]» est supprimé chaque fois qu'une nouvelle requête est effectuée après l'expiration d'un jeton précédent.
En fin de compte, l'objectif est de fournir un jeton d'accès à toute demande d'API Power BI REST sans avoir à placer manuellement le jeton d'autorisation dans la demande. La réalisation de cet objectif repose sur une variable de session (appelée temp_access_token dans ce cas comme on le voit sur la capture d'écran).

Pour obtenir ce résultat, la première étape consiste à créer un nouvel environnement dans Postman. Ensuite, ajoutez cinq variables pour remplacer les valeurs codées en dur vues dans le message original de Carl. J'ai utilisé des variables d'environnement pour pouvoir les utiliser dans plusieurs collections, mais restreindre la portée aux variables de collection fonctionnerait également.

Quatre variables sont utilisées dans le corps de la requête pour obtenir le jeton d'accès à partir de https://login.microsoftonline.com/common/oauth2/token. Ce ne sont que des variables de session locales (spécifiez Valeur actuelle mais fais non ajouter des données sensibles à Valeur initiale).
1) nom d'utilisateur - Utilisateur Power BI organisationnel
2) le mot de passe - Mot de passe de l'organisation Power BI
3) Identification du client - Votre identifiant Application Azure Active Directory
4) client_secret - Secret de votre application Azure Active Directory
REMARQUE: Postman ne dispose actuellement pas d'un moyen de protéger, masquer ou masquer les valeurs de variable. Après avoir travaillé avec des produits Microsoft comme Azure Key Vault, vous vous sentez si vulnérable en stockant simplement un mot de passe dans une variable. Cependant, pour une utilisation avec le type d'octroi de OAuth = mot de passe, les variables de session sont un pas en avant par rapport à leur codage dans le corps d'une requête. Cela est particulièrement vrai si vous utilisez Postman pour les équipes et que votre espace de travail est synchronisé. Je garde simplement ces données Valeur actuelle, au moins ça reste local.

La cinquième variable, temp_access_token, n'est pas spécifié manuellement comme les quatre autres. Au lieu de cela, vous utiliserez du code dans le facteur Des tests tab pour écrire le jeton d'accès à cette variable. Des tests c'est une zone pour placer du code JavaScript qui est exécuté après la demande.
Obtenez un jeton
La demande d'API initiale obtient le jeton d'accès utilisé dans les appels suivants.
Ajouter un nouveau Envoyer application à https://login.microsoftonline.com/common/oauth2/token
pour En-têtes, ajouter:
Clé = Type de contenu
Valeur = application / x-www-form-urlencoded

pour Corps, qui inclut les valeurs de variable à l'intérieur de {{}}, ajoutez:
grant_type = password & username = {{username}} & password = {{password}} & client_id = {{client_id}} & client_secret = {{client_secret}} & resource = https: //analysis.windows.net/powerbi/ api

Ce qui suit est la partie la plus utile. Le code ici vous évite d'avoir à copier et coller manuellement le jeton de support dans des demandes supplémentaires.
Au Des tests, ajouter:
var token; essayer {var response = JSON.parse (responseBody);
jeton = response.access_token;
pm.environment.set ("temp_access_token", jeton);
} catch (err) {console.warn (err.message); }
Le code utilisé dans Des tests analyse la réponse JSON et attribue le jeton d'accès fourni par Microsoft au temp_access_token variable.

Une demande réussie affichera le access_token et d'autres données.

Il écrira également le jeton d'accès dans la variable appropriée.
Utilisez le jeton dans les demandes suivantes
Les demandes supplémentaires dépendront de ce que vous souhaitez faire avec l'API Power BI. Cependant, l'étape courante impliquera de transmettre l'en-tête d'autorisation avec le jeton stocké en tant que variable.
pour En-têtes, ajouter:
Clé = Valeur d'autorisation = Porteur {{temp_access_token}}

Par exemple, je peux utiliser ce paramètre pour développer toutes les données d'espace de travail dans mon client à l'aide de la point de terminaison de gestion / groupes. J'ai juste besoin de la méthode d'autorisation dynamique, de l'URL et de l'en-tête. Aucun copier / coller manuel requis.

Vous pouvez même étendre cette méthode pour inclure des variables supplémentaires pour les URL de point de terminaison relatives et plus encore!
Si vous avez des questions, commentez ci-dessous et faites-moi savoir si vous utilisez Postman et trouvez cette méthode utile.
[embedyt] https://www.youtube.com/playlist?list=PLyWe5-Lx84g1JrDY6Zh_dfV2oO-Cy3frl&layout=gallery[/embedyt] Liens de paiement
En tant qu'associé Amazon, je gagne sur les achats éligibles.