Premières requêtes dans Postman
- Leçon 13
- 40 min
- Module 5 : Explorer et tester avec Postman
Leçon 13 sur 21 · Créer et déployer votre première APIPremières requêtes dans Postman
1. Comprendre la requête Web
2. Créer un petit service FastAPI
3. Concevoir un contrat utilisable
4. Documenter l'API avec OpenAPI et Swagger UI
5. Explorer et tester avec Postman
6. Tester et renforcer le service
7. Déployer et vérifier
Ce que vous saurez faire
Travaillez avec une API comme beaucoup d’équipes le font chaque jour : dans Postman. Chaque requête y est enregistrée, facile à modifier et à renvoyer. Vous partez du document OpenAPI de votre API. Tous les points de terminaison sont donc prêts en une étape.
Avant de commencerCe qu’il faut savoir et avoir sous la main
Ce que vous devez savoir
- Votre tableau de contrat et ses lignes d’échec, tirés de Conception des ressources et des points de terminaison : règle 4 : écrire le contrat sous forme de tableau et de Validation et réponses d’erreur : exemple détaillé : une structure pour toutes les erreurs.
- D’où viennent le titre, les étiquettes et les résumés dans
/openapi.json, selon Une documentation utilisable : d’où vient chaque partie de la documentation.
Ce qu’il vous faut sur votre ordinateur
- L’API fonctionne localement avec
fastapi dev, ethttp://127.0.0.1:8000/openapi.jsons’ouvre, comme à la fin de Garder la documentation exacte : exercice guidé : protéger le contrat. Si vous l’avez démarrée avecSHOW_DOCS=false, redémarrez-la sans cette variable. - Si vous avez ajouté
explanationdans l’exercice « À vous de jouer » de cette leçon, retirez-le. Exportez ensuite le contrat de nouveau, comme l’indique l’exercice. - Un compte Postman gratuit. L’application Postman en exige un pour conserver les collections et les environnements. Le forfait Free (gratuit) s’adresse à une personne et ne nécessite aucun paiement. Si vous ne voulez pas de compte, vous pouvez suivre ce module avec Swagger UI et curl. L’interface en ligne de commande de Postman, dans la leçon 3, fonctionne sans compte.
- Environ 500 Mo d’espace disque pour l’application.
- Si votre projet manque ou ne fonctionne plus, copiez l’instantané
end-of-m04, qui contient le projet à la fin du module 4. Utiliser un instantané présente les étapes.
Les étapes pour l’application suivent la documentation de Postman 12. L’équipe Postman modifie souvent l’application. Le nom ou l’emplacement d’un bouton peut donc varier légèrement.
Pourquoi un autre outil?
Section intitulée « Pourquoi un autre outil? »Vous pouvez déjà envoyer des requêtes avec curl et Swagger UI. Chacun a ses limites :
| Outil | Utile pour | Peu adapté à |
|---|---|---|
| curl | Une requête, un script, un rapport de bogue | Beaucoup de requêtes, des corps longs, la comparaison des réponses |
| Swagger UI | Essayer les points de terminaison d’une API à partir de sa documentation | L’enregistrement des requêtes, plusieurs environnements, les tests |
| Postman | Conserver toutes vos requêtes, avec des noms, des variables et des tests, pour plusieurs API et environnements | Les tests automatisés dans le code (c’est le rôle de pytest) |
Postman est un client API : une application pour créer, envoyer, enregistrer et tester des requêtes. Les requêtes sont conservées dans des collections. Ce sont des groupes nommés de requêtes, organisés en dossiers, que vous pouvez partager, exécuter et exporter. Beaucoup d’entreprises fournissent à leurs partenaires une collection Postman avec leur API, en plus du document OpenAPI.
Installer l’application et se connecter
Section intitulée « Installer l’application et se connecter »- Allez à postman.com/downloads et téléchargez l’application de bureau pour votre système.
- Installez-la et ouvrez-la.
- Connectez-vous avec votre compte Postman ou sélectionnez l’option pour créer un compte gratuit.
- Utilisez l’application de bureau pour ce cours, pas Postman dans un navigateur Web. La version Web ne peut pas joindre
127.0.0.1sur votre ordinateur sans un programme supplémentaire, le Postman Desktop Agent.
Exemple détaillé : une première requête
Section intitulée « Exemple détaillé : une première requête »L’API d’Amira fonctionne à l’adresse http://127.0.0.1:8000. Dans Postman, elle ouvre un nouvel onglet de requête (le + à côté des onglets ouverts), puis :
- Elle garde la méthode
GETet saisit l’URLhttp://127.0.0.1:8000/health. - Elle sélectionne Send (envoyer).
La réponse apparaît dans la moitié inférieure de la fenêtre :
| Partie du panneau de réponse | Contenu affiché |
|---|---|
| La ligne d’état | 200 OK, le temps en millisecondes et la taille |
| Body (corps) | {"status": "ok"}, mis en forme (Pretty) ou tel que reçu (Raw) |
| Headers (en-têtes) | Les en-têtes de réponse, comme content-type: application/json |
Ensuite, une requête POST avec un corps JSON :
-
Dans un nouvel onglet, choisissez la méthode
POSTet saisissezhttp://127.0.0.1:8000/v1/classify. -
Ouvrez l’onglet Body de la requête. Sélectionnez raw (brut), puis JSON dans la liste à côté.
-
Saisissez le corps :
{"subject": "Charged twice for March","body": "My card was charged two times for the same invoice."} -
Sélectionnez Send. La réponse est
200 OKavec"category": "billing"et"priority": 1.
Quand vous choisissez JSON, Postman ajoute l’en-tête Content-Type: application/json pour vous. Vous le trouverez dans l’onglet Headers de la requête, parmi les en-têtes que Postman ajoute automatiquement.
Importer le document OpenAPI
Section intitulée « Importer le document OpenAPI »Saisir chaque requête à la main prend du temps et répète du travail déjà fait. Votre API décrit déjà chaque point de terminaison dans /openapi.json. Postman peut créer une collection à partir de ce document.
- Sélectionnez Import (importer), près du coin supérieur gauche de l’application.
- Collez l’URL
http://127.0.0.1:8000/openapi.json. - Postman reconnaît un document OpenAPI. Choisissez Postman Collection (collection Postman).
- Sélectionnez View Import Settings (voir les paramètres d’importation). Réglez Folder organization (organisation des dossiers) sur Tags (étiquettes). Les dossiers correspondront ainsi aux sections de Swagger UI.
- Sélectionnez Import. Une collection nommée Ticket Classifier API (API de classification des billets) apparaît dans la barre latérale.
Ouvrez-la. L’importation a utilisé la documentation que vous avez écrite dans le module 4 :
| Dans Postman | Source |
|---|---|
| Le nom de la collection, Ticket Classifier API | title dans FastAPI(...) |
| Les dossiers tickets (billets) et health (état de fonctionnement) | Les étiquettes |
| Les noms des requêtes, comme Classify a support ticket (classer un billet de soutien) | Le summary de chaque route |
| La description de chaque requête | La description de chaque route |
| Les exemples enregistrés sous chaque requête | Les réponses documentées, comme 422 avec la structure d’erreur |
De bons résumés dans le code donnent maintenant de bons noms dans Postman.
Faire fonctionner les requêtes importées
Section intitulée « Faire fonctionner les requêtes importées »Deux éléments demandent encore votre attention.
L’URL de base. Ouvrez Classify a support ticket. Son URL est {{baseUrl}}/v1/classify. {{baseUrl}} est une variable : Postman la remplace par une valeur avant d’envoyer la requête. L’importation en a fait une variable de la collection, avec la valeur /. En effet, le document OpenAPI n’indique pas où l’API fonctionne. Définissez-la :
- Sélectionnez la collection dans la barre latérale et ouvrez son onglet Variables (variables).
- Réglez la valeur de
baseUrlsurhttp://127.0.0.1:8000(sans/à la fin). - Enregistrez la collection (Ctrl+S, ou Cmd+S sur macOS).
Le corps de la requête. L’importation a rempli le corps à partir du schéma, pas de votre exemple : "subject": "<string>". Cette chaîne est valide et renvoie other (autre). Remplacez-la par un vrai billet et enregistrez la requête. Postman ne conserve pas une modification tant que vous n’enregistrez pas la requête. Un onglet non enregistré affiche un point dans son nom.
Envoyez maintenant List the ticket categories (lister les catégories de billets) et Classify a support ticket. Les deux renvoient 200.
De Postman à curl, et inversement
Section intitulée « De Postman à curl, et inversement »Une requête Postman se partage facilement sous forme de commande curl, par exemple dans un rapport de bogue. Ouvrez une requête et sélectionnez l’icône Code (code), représentée par </>, à droite. Choisissez cURL. Postman affiche la commande, avec la variable déjà remplacée par sa valeur.
Cela fonctionne aussi dans l’autre sens. Collez une commande curl dans le champ URL. Postman en fait une requête, avec la méthode, les en-têtes et le corps.
Exercice guidé : votre espace de travail
Section intitulée « Exercice guidé : votre espace de travail »- Installez Postman, connectez-vous et ouvrez un nouvel onglet de requête.
- Envoyez
GET http://127.0.0.1:8000/health. Trouvez l’état, le temps et l’en-têtecontent-typedans le panneau de réponse. - Importez
http://127.0.0.1:8000/openapi.jsoncomme collection Postman, avec des dossiers organisés par étiquettes. - Réglez la variable de collection
baseUrlsurhttp://127.0.0.1:8000et enregistrez la collection. - Ouvrez Classify a support ticket, mettez un vrai billet dans le corps, enregistrez la requête et envoyez-la.
- Ouvrez les exemples enregistrés sous la requête. Trouvez l’exemple pour
422et comparez-le à la structure d’erreur du module 3. - Ouvrez la vue Code et copiez la requête sous forme de commande cURL. Exécutez la commande dans un terminal. (Sur Windows, adaptez-la pour utiliser un fichier de corps, comme dans le module 1.)
À vous de jouer : des requêtes pour chaque ligne
Section intitulée « À vous de jouer : des requêtes pour chaque ligne »Votre tableau de contrat du module 3 contient des lignes d’échec. Dans le dossier tickets de la collection, créez une requête enregistrée pour chacune. Donnez-lui un nom qui indique ce qu’elle vérifie :
- Rejeter un sujet vide :
{"subject": ""}. - Rejeter un champ inconnu :
{"subject": "Refund", "colour": "red"}. - Rejeter une requête GET sur classify :
GET {{baseUrl}}/v1/classify.
Pour copier une requête, utilisez Duplicate (dupliquer) dans son menu (les … à côté de son nom). Envoyez chaque requête et comparez le code d’état et les fields (champs) au tableau.
Afficher ce que vous devriez voir
422,"code": "invalid_request","fields": ["subject"].422,"fields": ["colour"], parce queTicketIninterdit les champs supplémentaires.405,"code": "method_not_allowed".
Dans la leçon 3, vous ajoutez des tests à ces requêtes pour que Postman vérifie les résultats pour vous.
Erreur courante
Impossible d'envoyer la requête : ECONNREFUSED
Symptôme : Postman affiche Could not send request (impossible d’envoyer la requête) et Error: connect ECONNREFUSED 127.0.0.1:8000 (erreur de connexion refusée). Ou la version Web de Postman ne peut pas joindre votre API locale.
Cause : aucun programme n’écoute à cette adresse et sur ce port. Habituellement, l’API ne fonctionne pas ou utilise un autre port. Avec Postman dans un navigateur Web, la requête vient des serveurs de Postman ou de votre navigateur. Elle ne vient pas du terminal de votre ordinateur. Elle ne peut donc pas joindre 127.0.0.1 sans le Desktop Agent.
Solution :
- Vérifiez le terminal de l’API :
fastapi devdoit fonctionner et afficherUvicorn running on http://127.0.0.1:8000(Uvicorn fonctionne à cette adresse). - Vérifiez
baseUrl: le schéma (http, pashttps), l’hôte et le port. - Utilisez l’application de bureau pour les API locales.
Vérifiez votre compréhension
Après l'importation, l'URL d'une requête est {{baseUrl}}/v1/classify. Son envoi échoue parce que l'URL est invalide. Pourquoi, et où corriger le problème?
Afficher la réponse
{{baseUrl}} est une variable. L’importation l’a réglée sur /, car le document OpenAPI n’indique pas où l’API fonctionne. L’URL devient donc //v1/classify. Réglez baseUrl sur http://127.0.0.1:8000 dans l’onglet Variables de la collection. Dans la prochaine leçon, un environnement Postman conservera plutôt cette valeur. Une seule collection fonctionnera ainsi pour l’API locale et l’API déployée.
Votre réponse contient-elle les points principaux de la nôtre ?
Connectez-vous et inscrivez-vous au cours pour enregistrer vos réponses. Chaque vérification compte pour le certificat.
Récapitulatif
- Postman est un client API qui conserve les requêtes dans des collections, avec des noms, des dossiers et des exemples enregistrés.
- Utilisez l’application de bureau pour une API sur votre ordinateur.
- Importer
/openapi.jsoncrée une collection à partir de votre documentation : les étiquettes deviennent des dossiers, les résumés deviennent des noms de requêtes. {{baseUrl}}est une variable. Définissez sa valeur et remplacez les corps<string>générés par de vrais corps.- La vue Code transforme une requête en commande curl.
Ensuite, vous ferez fonctionner la collection dans plusieurs environnements et vous garderez les secrets à l’extérieur.
Leçon suivante : Collections, variables et environnements