Skip to content

Chapitre 5 - Les scripts à la rescousse 🚑

 

Objectifs de la Mission 🎯

  • Découvrir les scripts dans Bruno
  • Renforcer les rangs de la rébellion

Pre Request scripts

Dans Bruno, via l'onglet Script, il est possible d'écrire des scripts JS qui s'exécuteront avant l'appel de la requête.

Dans ce script, est accessible, l'objet req représentant la requête HTTP faite au server (headers, url, ...). Pour plus d'info, vous pouvez vous rendre sur la documentation de l'objet Request.

Pour ouvrir la console developpeur dans Bruno ℹ️

View > Toggle Developer Tools

Il est également possible de configurer, lire et/ou modifier des variables de "collection" qui seront accessibles au niveau de la requête et de la collection, pratique pour préparer le body d'une requête.

Post Response scripts

Dans Bruno, via l'onglet Script, il est également possible d'écrire des scripts JS qui s'exécuteront après l'appel de la requête.

Dans ce script, est accessible, l'objet res représentant la réponse de l'appel HTTP fait au server. Cet objet peut être utilisé pour lire les valeurs du corps, des entêtes et du statut de la réponse. Pour plus d'info, vous pouvez vous rendre sur la documentation de l'objet Response.

Il est également possible de configurer, lire et/ou modifier des variables de "collection" qui seront accessibles au niveau de la requête et de la collection, pratique pour sauvegarder le résultat ou partie d'une réponse pour une autre requête de la collection.

Variables de collection

Il est possible de configurer des variables de manière programmatique et/ou déclarative.

Variables programmatiques

Pour manipuler des variables de manière programmatique, il faudra le faire dans les Pre Script et/ou Post Script via l'objet bru et son API (documentation ici).

Variables déclaratives

Pour manipuler des variables de manière déclarative, il faudra le faire dans l'onglet Vars :

Bruno attend une valeur dans Pre Request alors que dans la partie Post Response il attend une expression JS valide, où l'objet res est directement accessible.

Attention aux conflits

L'onglet Vars est exécuté avant l'onglet Script, donc si vous manipulez des variables de même nom, la valeur configurée dans Vars sera écrasée par celle configurée dans Script.

Ordre d'exécution :

Vars Pre Request > Script Pre Request > Vars Post Response > Script Post Response

A vous de jouer !

  • Stocker votre passeport galactique dans une variable de "collection" nommée galactic_passport (bru.setVar('galactic_passport', res.body.galacticPassport))
  • Ajoutez une requête pour faire progresser un des types de personnage
    • cette requête nécessite votre passeport galactique
    • utilisez votre passport pour vous identifier, deux possibilités:
      • dans l'onglet Headers > Add Header > Name: Authorization | Value: Bearer {{galactic_passport}}
      • OU
      • dans l'onglet Auth > Bearer Token > insérez {{galactic_passport}} dans le champ Token

Astuce

Pour vérifier si vos variables sont correctement configurées, vous pouvez faire un console.log ou cliquez sur l'icône en forme d'oeil en haut à droite de Bruno. Elle permet d'afficher les variables de collection et d'environnement.

Besoin d'un coup de main ?

Les solutions à ce chapitre sont dans les dossiers solutions/chapter-5 et solutions/environments

Renforcer les rangs

Lorsqu'un personnage de l'empire progresse, sa puissance augmente de 10, alors que la puissance d'un type personnage de la rébellion n'augmentera que de 1 (le côté obscure est séduisant...).

Faites progresser les wookies pour gagner la bataille Envahisseurs à Kashyyyk

Le serveur ne semble pas être démarré en local

Info

Renforcer les rangs de la résistance en cliquant de manière effrénée est plutôt répétitif, long et contraignant... 😕

Il est possible d'exécuter en boucle les requêtes d'un dossier ou d'une collection depuis l'interface, cependant il faut posséder la version payante de Bruno.