Facteur es una herramienta valiosa para trabajar con API, especialmente cuando se realizan pruebas y solicitudes ad hoc fuera de una solución de producción automatizada. En términos de dónde un desarrollador de Power BI puede encontrar útil a Postman, se encuentra en algún lugar entre «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 aún no tiene uno, y también debe tener el portée apropiado definido para sus tareas deseadas.
Ajouter des variables
Extension de la technique Postman à utiliser variables en lugar de valores codificados, hace que el esfuerzo être más automático y conveniente. En particular, al pasar el token de acceso a una variable para su reutilización en otras solicitudes de API, se elimina una copia y pegado manual » [token]”Cada vez que se realiza una nueva solicitud después de que expira un token anterior.
En última instancia, el objectif es proporcionar un token de acceso a cualquier solicitud de API REST de Power BI sin tener que colocar manualmente el token de autorización en la solicitud. Lograr esto se basa en una variable de sesión (llamada 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) nombre de Nom d'utilisateur - Utilisateur Power BI organisationnel
2) le mot de passe - Mot de passe de l'organisation Power BI
3) Identificación del 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 es un área para colocar código JavaScript que se ejecuta después de que ocurre la solicitud.
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. Solo necesito el método, la URL y el encabezado de autorización dinámica. No se requiere copiar / pegar manualmente.
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
Como asociado de Amazone, gano con las compras que califican.