Skip to main content

(Complément) Tester son API avec Bruno

Qu'est-ce que Bruno ?

Bruno est un client API open-source et moderne qui permet de tester et documenter vos APIs. Contrairement à d'autres outils comme Postman, Bruno stocke vos collections directement dans votre système de fichiers sous forme de fichiers texte, ce qui les rend parfaitement compatibles avec Git.

Pourquoi utiliser Bruno ?

  • Git-friendly : Les collections sont stockées en fichiers texte (format .bru)
  • Open-source : Code source disponible et gratuit
  • Pas de cloud : Tout fonctionne en local, pas besoin de compte
  • Léger et rapide : Interface simple et performante
  • Collaboration facile : Partage via Git plutôt que des workspaces cloud

Créer une collection

  1. Lancez Bruno
  2. Cliquez sur "Create Collection"
  3. Choisissez un nom pour votre collection (ex: "My API")
  4. Sélectionnez un dossier où stocker la collection

Astuce : Créez votre collection directement dans votre projet Node.js, dans un dossier bruno/ ou api-tests/. Ainsi, vous pourrez versionner vos requêtes avec Git.

Structure d'une collection

Une collection Bruno ressemble à ceci :

my-api/
├── bruno.json # Configuration de la collection
├── environments/ # Variables d'environnement
│ ├── local.bru
│ └── production.bru
└── users/ # Dossier pour les requêtes "users"
├── get-users.bru
├── create-user.bru
└── delete-user.bru

Initialiser le dossier Bruno

Avant de créer vos premières requêtes, assurez-vous que votre collection est bien initialisée avec un fichier bruno.json.

Création automatique via l'interface

Lorsque vous créez une collection via l'interface Bruno (étapes ci-dessus), le fichier bruno.json est créé automatiquement.

Création manuelle

Si vous préférez créer le dossier manuellement, créez un fichier bruno.json à la racine de votre collection :

{
"version": "1",
"name": "My API",
"type": "collection"
}

Important : Sans le fichier bruno.json, Bruno ne reconnaîtra pas votre dossier comme une collection valide et vous ne pourrez pas créer de requêtes.

Vérification

Pour vérifier que votre collection est bien initialisée :

  1. Ouvrez Bruno
  2. Cliquez sur "Open Collection"
  3. Sélectionnez le dossier contenant votre bruno.json
  4. Si tout est correct, Bruno affichera le nom de votre collection dans la sidebar

Créer et exécuter des requêtes

Requête GET

  1. Cliquez sur "New Request"
  2. Nommez votre requête (ex: "Get Users")
  3. Sélectionnez la méthode GET
  4. Entrez l'URL : http://localhost:3000/users
  5. Cliquez sur "Send"

Exemple de fichier .bru généré :

meta {
name: Get Users
type: http
seq: 1
}

get {
url: http://localhost:3000/users
body: none
auth: none
}

Requête POST

Pour créer un utilisateur :

  1. Créez une nouvelle requête POST
  2. URL : http://localhost:3000/users
  3. Dans l'onglet Body, sélectionnez JSON
  4. Ajoutez votre payload :
{
"name": "John Doe",
"email": "john@example.com"
}
  1. Cliquez sur "Send"

Le fichier .bru :

meta {
name: Create User
type: http
seq: 2
}

post {
url: http://localhost:3000/users
body: json
auth: none
}

body:json {
{
"name": "John Doe",
"email": "john@example.com"
}
}

Requête avec paramètres d'URL

Pour obtenir un utilisateur spécifique :

  1. Méthode : GET
  2. URL : http://localhost:3000/users/123
  3. Ou avec query params : http://localhost:3000/users?limit=10&page=1

Variables d'environnement

Les environnements permettent de gérer différentes configurations (local, dev, production).

Créer un environnement

  1. Cliquez sur "Environments" dans la sidebar
  2. Créez un nouvel environnement (ex: "Local")
  3. Ajoutez vos variables :
baseUrl=http://localhost:3000

Utiliser les variables

Dans vos requêtes, utilisez {{variableName}} :

get {
url: {{baseUrl}}/users
body: none
auth: bearer
}

auth:bearer {
token: {{token}}
}

Exemple d'environnements

local.bru :

vars {
baseUrl: http://localhost:3000
}

Scripts

Script pré-requête

Pour générer un timestamp ou préparer des données :

req.setBody({
name: 'User ' + Date.now(),
email: `user${Date.now()}@example.com`,
})

Script post-requête

Pour sauvegarder l'ID de l'utilisateur créé après un POST :

if (res.status === 201) {
bru.setEnvVar('userId', res.body.id)
}

Maintenant, vous pouvez utiliser {{userId}} dans vos autres requêtes, par exemple pour obtenir un utilisateur spécifique : GET http://localhost:3000/users/{{userId}}

Note : Pour voir comment utiliser l'authentification JWT avec Bruno, consultez le chapitre sur l'authentification.