Il y a différentes façons d’écrire le code M pour se connecter à une API (Application Programming Interface), cependant, il faudra utiliser une structure précise pour être à même d’actualiser notre connexion à une API sur Power BI Service.
Effectivement, si on utilise Excel pour notre connexion, il n’y a pas de problème à utiliser une connexion de ce type :
Qui consiste à mettre bout à bout, l’URL de l’API suivi des différents paramètres à passer à l’API. Puis de passer le tout dans le paramètre url de la fonction Web.Contents : Web.Contents (URL).
Vous pouvez visionnez notre webinaire passé pour en savoir plus sur les API et comprendre cette méthode : Connecter Power Query à des APIs
Problématique de cette structure
Il y a deux éléments qui font en sorte que la structure utilisée plus haut pose problème. D’un, une fois notre rapport publié sur Power BI Service, nous ne serons pas en mesure d’actualiser nos données. De deux, pour beaucoup d’APIs, nous ne pourrons pas passer nos identifiants et autres paramètres dans ce type de structure.
Structure à utiliser pour une actualisation sur le Service
Cette structure va fonctionner dans Power BI Desktop. Par contre, quand viendra le temps d’actualiser vos données sur le service, vous obtiendrez un message d’erreur. Le message vous indiquera que la donnée source ne peut être actualisée.
La structure à privilégier est donc d’utiliser les deux paramètres de la fonction Web.Contents : URL et options.
Dans l’exemple suivant, on se connecte à l’API de Statistique Canada pour aller chercher des données de l’industrie forestière et connaitre la production pour différentes essences d’arbres.
Une fois qu’on s’est créé un compte sur Statistique Canada, on obtiendra une clé d’identification pour se connecter à l’API.
On obtiendra également les informations nécessaires concernant les différents paramètres à utiliser pour obtenir les données désirées. Nous allons alors insérer ces éléments dans le 2e paramètre de la fonction Web.Contents : optional Options as nullable record.
Vous avez dans l’image suivante les différentes Options que l’on peut utiliser dans ce paramètre et vous avez aussi l’information dans la documentation de Microsoft :
Voici le code M avec l’utilisation de ces options
1er paramètre de Web.Contents : URL
Nous avons passé l’URL de base des APIs de Statistique Canada dans la variable url et seulement cette partie se trouve dans le premier paramètre du Web.Contents.
2e paramètre de Web.Contents : Options
Nous avons utilisé 3 différentes options pour le 2e paramètre du Web.Contents soit :
- RelativePath dans lequel nous avons passé notre variable relativepath qui contient l’adresse de l’API à laquelle nous voulons nous connecter (v1/getDataFromVectorsAndLatestPeriods).
- Dans le cas où l’on voudrait se connecter à une autre API de Statistique Canada, on aurait seulement à modifier le RelativePath et non l’URL de base.
- Headers dans lequel nous avons passé notre clé d’identification dans le paramètre user_key et le type de donnée : application/json dans le paramètre Content-Type. Vous obtenez le nom des paramètres à utiliser dans la documentation de l’API.
- Content dans lequel nous avons identifié le vectorId à utiliser et le nombre de données historiques à retourner pour le paramètre latestN.
Dans les données de Statistique Canada, le vectorId identifie le produit pour lequel nous voulons obtenir de l’information. Ici le vectorId a été inséré dans un paramètre dans Power Query. Puis pour le nombre de périodes, on a utilisé 5 pour obtenir les 5 dernières données historiques.
Note : ici il faut entrer l’information en format JSON tel que décrit dans la documentation de l’API. Aussi, nous avons utilisé l’option Content puisque cette API est de type POST, autrement, il faudrait utiliser l’option Query.
Comme nous devons fournir l’information sous forme de record dans le 2e paramètre du Web.Contents, nous avons entouré le tout de crochet [ ].
Vous devez analyser de grandes quantités de données et les présenter dans des rapports et tableaux de bord, avec des indicateurs de performance pertinents ? Développez vos compétences avec nos formations en Power BI en français ou en anglais. |
---|
Une fois sur le Service
Lorsque nous publions le rapport sur le Service, il faut notamment compléter les étapes suivantes.
- Aller dans les paramètres du jeu de données
- Aller dans la section Information d’identification de la source de données. Il y a un message d’erreur indiquant que notre source de données ne peut être actualisée, car les informations d’identification ne sont pas valides.
- Il faut cliquer sur l’option Modifier les informations d’identification.
- Il faut choisir la méthode d’authentification Anonymous, puis cocher l’option Ignorer le test de connexion. Il est nécessaire d’entrer l’information de cette façon puisque la méthode d’identification à notre API est contenue dans notre code M dans Power Query (dans l’option Headers) et c’est cette dernière que nous voulons utiliser.
- La source de données peut maintenant être actualisée sur le Service.
Flux de données
Il serait également intéressant de créer votre connexion à l’API directement avec un Flux de données Power BI pour vous permettre d’en contrôler l’actualisation de façon indépendante de vos autres données. Effectivement, plusieurs API ont un coût à l’utilisation. Il sera donc judicieux d’en contrôler l’actualisation de façon indépendante pour limiter les frais.
D’une API à l’autre
Il est important de savoir que chaque API possède ses propres paramètres et méthode d’authentification. Ainsi l’information à insérer dans chacune des options de la fonction Web.Contents va varier d’une API à l’autre. Il est donc important de prendre connaissance de la documentation de l’API et d’apporter les modifications nécessaires au code décrit précédemment.
Fichier d’accompagnement VIP à télécharger
Pour télécharger le fichier utilisé dans ce tutoriel, devenez membre VIP du CFO masqué.
Formation complémentaire
Afin d’approfondir vos connaissances avec Power BI et plus particulièrement vos compétences avec l’éditeur de requête Power Query, nous vous recommandons notre formation Recettes magiques pour transformer vos données.
Voici quelques commentaires d’apprenants ayant suivi la formation en ligne Recettes magiques pour transformer vos données :
Bonjour,
Merci pour cet article KIM. Savez-vous s’il est possible d’automatiser une API POST sur Power BI Services ?