banner

Nouvelles

Aug 22, 2023

Premiers pas avec les API REST dans PowerShell

Brien Posey | 04 août 2023

L'API REST, également connue sous le nom d'API RESTful, est un protocole utilisé pour interagir avec les applications Web. Bien que les appels REST soient généralement effectués via un navigateur ou une application, vous pouvez également utiliser PowerShell pour interagir avec une API REST.

Lorsque vous utilisez une API REST, vous devez indiquer à l'API la méthode que vous souhaitez utiliser. Par exemple, la méthode GET est utilisée pour récupérer des données d'une application, tandis que la méthode POST est utilisée pour créer de nouvelles données. Les autres méthodes REST incluent PUT, PATCH et DELETE.

Connexe : Comment créer des scripts PowerShell compatibles ChatGPT

Lorsque vous soumettez une requête à une API REST, vous devrez fournir un corps de requête correctement structuré. L'API renverra ensuite une réponse à cette requête. La structure du corps dépend de la méthode spécifique utilisée.

Cet article étant destiné aux débutants, concentrons-nous sur l'utilisation de la méthode GET pour récupérer des données à partir d'une API REST.

Je me concentre sur la méthode GET car elle ne nécessite pas de créer une table de hachage, contrairement à certaines autres méthodes. En supposant que l'API ne nécessite pas d'authentification, il vous suffit de spécifier l'URI de l'API et la méthode que vous souhaitez utiliser.

Cependant, à certains égards, cela simplifie un peu les choses. Dans les scénarios réels, les requêtes GET incluent presque toujours des paramètres qui spécifient les données que vous souhaitez récupérer de l'API.

À titre d'exemple, regardons une API liée à un jeu trivial située sur https://opentdb.com/api.php. J'ai trouvé l'API répertoriée sur une page Web avec divers exemples d'API.

Pour obtenir des questions triviales de l'API à l'aide d'une requête GET, vous devez inclure deux valeurs : Montant et Catégorie. Ces valeurs se trouvent généralement dans la requête HTTPS.

Voici un exemple d'une telle demande et les résultats : https://opentdb.com/api.php?amount=1&category=18. Lorsque vous effectuez cette requête, l'API renvoie des données brutes au format JSON, comme le montre la figure 1.

Figure 1:Cet appel d'API basé sur un navigateur renvoie des données brutes au format JSON.

Dans PowerShell, vous pouvez saisir l’URI exactement tel qu’il est répertorié ci-dessus. Cependant, si vous construisiez un jeu-questionnaire basé sur PowerShell, vous ne voudriez probablement pas effectuer le même appel URI à chaque fois. Au lieu de cela, vous pouvez stocker les valeurs Montant et Catégorie dans des variables pour les mettre à jour au fur et à mesure de la progression du jeu. Cela nécessiterait l'utilisation de la manipulation de chaînes pour construire l'URI de manière dynamique.

Voici un exemple de la façon dont vous pourriez le faire dans PowerShell :

Vous pouvez voir ces commandes et l'URI résultant dans la figure 2.

Figure 2.C'est ainsi que vous formez un URI personnalisé.

Après avoir formé l’URI, vous pouvez spécifier la méthode à utiliser. Vous pouvez spécifier une méthode directement, mais je préfère stocker la méthode dans une variable comme celle-ci :

Pour interroger l'API, il vous suffit d'utiliser l'applet de commande Invoke-RestMethod de PowerShell et de spécifier la méthode et l'URI :

Vous pouvez voir cette commande en action dans la figure 3. Notez que l'API renvoie les résultats au format JSON.

Figure 3.Une question triviale a été récupérée à partir d’une application Web à l’aide d’une API REST.

Normalement, c'est tout ce qui est requis pour soumettre une requête GET à une API REST. Dans certains cas où l'API nécessite une authentification, vous devrez peut-être inclure le paramètre -Credential avec les informations d'identification.

Avant de conclure cet article, voyons comment convertir les données récupérées dans un format utilisable.

L’approche la plus simple consiste à mapper l’applet de commande Invoke-RestMethod à une variable. Par exemple, vous pouvez utiliser la commande suivante :

Lors de l'utilisation de cette technique, PowerShell convertit automatiquement les données JSON reçues au format Objet, ce qui offre plusieurs avantages. Pour afficher les données, tapez simplement $APICall.Results. Si vous devez accéder à des champs de données spécifiques, vous pouvez utiliser l'applet de commande Select-Object.

Graphique 4.Les données ont été écrites dans un objet PowerShell et sont accessibles comme n'importe quelle autre donnée PowerShell.

A propos de l'auteur

Plus d'informations sur les formats de texte

PARTAGER