Retour

📮 REST API avec Postman

L'outil indispensable pour tester vos APIs

Qu'est-ce que Postman ?

Postman est l'outil de développement d'API le plus populaire au monde ! 🚀 Il permet de tester, documenter et automatiser vos appels API REST sans écrire une ligne de code (au début !).

✨ Disponible sur postman.com

💻 Desktop app (Windows, Mac, Linux) + version web

🆓 Version gratuite très complète

🚀 Installation & Première Requête

1️⃣ Installation

  1. Va sur postman.com/downloads
  2. Télécharge Postman pour ton OS
  3. Installe et crée un compte (ou skip et utilise en local)
  4. Tu arrives sur l'interface principale ! 🎉

2️⃣ Ta Première Requête GET

1. Clique sur "New" → "HTTP Request"
2. Dans la barre d'URL, entre : https://jsonplaceholder.typicode.com/users
3. Laisse le verbe sur "GET"
4. Clique sur "Send" 🚀
→ Tu verras la liste de 10 users en JSON !

🌐 jsonplaceholder.typicode.com est une API de test gratuite parfaite pour apprendre !

🔤 Les Verbes HTTP dans Postman

GET - Récupérer des données

GET
GET https://jsonplaceholder.typicode.com/posts/1

✅ Pas de body nécessaire

POST - Créer une ressource

POST
POST https://jsonplaceholder.typicode.com/posts Body (JSON) : { "title": "Mon super article", "body": "Contenu de l'article", "userId": 1 }

🔧 Body → raw → JSON (dans Postman)

PUT - Mettre à jour complètement

PUT
PUT https://jsonplaceholder.typicode.com/posts/1 Body (JSON) : { "id": 1, "title": "Titre modifié", "body": "Nouveau contenu", "userId": 1 }

💡 Remplace TOUTE la ressource

PATCH - Mettre à jour partiellement

PATCH
PATCH https://jsonplaceholder.typicode.com/posts/1 Body (JSON) : { "title": "Nouveau titre seulement" }

✅ Ne modifie que les champs fournis

DELETE - Supprimer une ressource

DELETE
DELETE https://jsonplaceholder.typicode.com/posts/1

❌ Supprime la ressource (souvent retourne 204 No Content)

📚 Collections - Organiser tes Requêtes

Qu'est-ce qu'une Collection ?

Une collection est un dossier qui regroupe plusieurs requêtes. C'est comme un projet API organisé ! 📁

Exemple de structure :

📁 My Blog API

├─ 📄 GET All Posts

├─ 📄 GET Post by ID

├─ 📄 POST Create Post

├─ 📄 PUT Update Post

└─ 📄 DELETE Post

💡 Créer une Collection

  1. Clique sur "Collections" dans la barre latérale
  2. Clique sur "+" ou "Create Collection"
  3. Nomme ta collection (ex: "JSON Placeholder Tests")
  4. Ajoute des requêtes avec "Add Request"
  5. Tu peux même ajouter des dossiers pour sous-catégoriser ! 📂

🌍 Environnements - Variables Dynamiques

Pourquoi des Environnements ?

Imagine : tu développes en local (localhost:3000), tu testes en staging (staging.api.com) et tu déploies en prod (api.com).

Plutôt que de modifier l'URL dans 50 requêtes, tu utilises une variable ! 🎯

📝 Créer un Environnement

  1. Clique sur l'icône "Environments" (🌍)
  2. Clique sur "+" pour créer un nouvel environnement
  3. Nomme-le (ex: "Development")
  4. Ajoute une variable :
Variable Initial Value Current Value
base_url https://jsonplaceholder.typicode.com https://jsonplaceholder.typicode.com

Maintenant, dans tes requêtes, utilise :

{{base_url}}/posts

💡 Astuce Pro : Crée un environnement pour chaque contexte (Dev, Staging, Prod). Change d'environnement en un clic ! 🔄

🔐 Headers & Authentication

Headers HTTP

Les headers transportent des métadonnées (type de contenu, auth, etc.)

Content-Type

Content-Type: application/json

→ Indique que tu envoies du JSON

Authorization

Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

→ Token JWT pour l'authentification

Accept

Accept: application/json

→ Indique le format de réponse souhaité

🔑 Authentification dans Postman

Postman gère plusieurs types d'authentification automatiquement !

1. Bearer Token (JWT)

  1. Onglet "Authorization"
  2. Type → "Bearer Token"
  3. Colle ton token
Token: eyJhbGciOiJIUzI1NiIs...

2. API Key

  1. Type → "API Key"
  2. Key: X-API-Key
  3. Value: ta clé API
  4. Add to: Header

3. Basic Auth

  1. Type → "Basic Auth"
  2. Username: ton username
  3. Password: ton password

🧪 Tests Automatiques avec Scripts

Tester les Réponses Automatiquement

Postman permet d'écrire des tests JavaScript pour vérifier automatiquement le code de statut, le contenu JSON, etc. 🎯

Onglet "Tests" dans ta requête :

// Test 1: Vérifier le statut 200
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});
// Test 2: Vérifier que la réponse est du JSON
pm.test("Response is JSON", function () {
    pm.response.to.be.json;
});
// Test 3: Vérifier un champ spécifique
pm.test("Response has userId", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.userId).to.exist;
    pm.expect(jsonData.userId).to.eql(1);
});
// Test 4: Temps de réponse < 500ms
pm.test("Response time is less than 500ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(500);
});

✅ Quand tu envoies la requête, les tests s'exécutent automatiquement et tu vois les résultats dans l'onglet "Test Results" ! 🎉

🔄 Pre-request Scripts

Les scripts avant la requête permettent de générer des données dynamiques !

// Générer un timestamp
pm.environment.set("timestamp", Date.now());
// Générer un ID aléatoire
pm.environment.set("randomId", Math.floor(Math.random() * 1000));
// Générer un UUID
const uuid = require('uuid');
pm.environment.set("uuid", uuid.v4());

🏃 Collection Runner - Automation

Exécuter Toutes les Requêtes en Série

Le Collection Runner permet d'exécuter toute une collection d'un coup, parfait pour les tests d'intégration ! 🚀

  1. Clique sur ta collection
  2. Clique sur "Run" (icône play ▶️)
  3. Sélectionne les requêtes à exécuter
  4. Configure le nombre d'itérations
  5. Clique sur "Run [Nom de ta collection]"

✨ Fonctionnalités avancées :

  • • Importer un fichier CSV/JSON pour tester avec des données différentes
  • • Ajouter des délais entre les requêtes (delay)
  • • Sauvegarder les réponses pour analyse
  • • Exporter les résultats de tests

🤖 Newman - CLI pour CI/CD

Newman est la version ligne de commande de Postman. Parfait pour l'automatisation ! 🛠️

# Installation
npm install -g newman
# Exécuter une collection
newman run my-collection.json
# Avec un environnement
newman run collection.json -e environment.json
# Générer un rapport HTML
newman run collection.json -r html

💡 Use case : Intégrer Newman dans ton pipeline CI/CD (GitHub Actions, GitLab CI, etc.) pour tester automatiquement ton API à chaque commit ! 🎯

💎 Astuces Pro

⚡ Raccourcis Clavier

  • Ctrl/Cmd + Enter → Envoyer la requête
  • Ctrl/Cmd + S → Sauvegarder
  • Ctrl/Cmd + K → Recherche globale

📝 Variables Dynamiques

  • {{`$randomInt`}} → Entier aléatoire
  • {{`$randomEmail`}} → Email aléatoire
  • {{`$timestamp`}} → Timestamp actuel

🔄 Chainer les Requêtes

Sauvegarde le résultat d'une requête dans une variable pour l'utiliser dans la suivante :

var id = pm.response.json().id; pm.environment.set("userId", id);

🌐 Mock Servers

Postman peut créer un mock server pour simuler une API avant même qu'elle existe ! Parfait pour le front-end en parallèle du back-end.

🎯 Exercice Pratique : Blog API

Mission : Créer une Collection Complète

Utilise l'API jsonplaceholder.typicode.com pour créer :

  1. Collection "Blog API Tests"
    • GET /posts → Récupérer tous les articles
    • GET /posts/1 → Récupérer l'article avec ID 1
    • POST /posts → Créer un nouvel article
    • PUT /posts/1 → Mettre à jour l'article 1
    • DELETE /posts/1 → Supprimer l'article 1
  2. Environnement "JSONPlaceholder"
    • Variable : base_url = https://jsonplaceholder.typicode.com
  3. Ajouter des Tests
    • Vérifier que GET /posts retourne status 200
    • Vérifier que POST /posts retourne status 201
    • Vérifier que la réponse contient un champ "id"
  4. Runner
    • Exécute toute la collection avec le Runner
    • Vérifie que tous les tests passent ✅

🎉 Résultat Attendu

Une collection organisée, réutilisable, avec des tests automatiques. Tu peux la partager avec ton équipe ou l'exporter pour Newman ! 🚀

🎮 Quiz Postman

1. À quoi sert une Collection dans Postman ?

2. Comment utilise-t-on une variable d'environnement ?

3. Quel onglet utilise-t-on pour ajouter un Bearer Token ?

4. Newman est :

5. Où écrire des tests automatiques ?

Glisser pour continuer vers Java Maven & Tests
⬇️