curl, Bruno et Postman
Pour parler à une API, pas besoin d'écrire du code : des outils permettent d'envoyer des requêtes HTTP à la main.
curl
curl est l'outil en ligne de commande de référence. Il est installé par défaut sur Linux, macOS et Windows 10+.
curl http://api-ritif.portlatch.com/v1/cocktails
Les options utiles
| Option | Rôle |
|---|---|
-i |
Affiche les headers de la réponse |
-v |
Mode verbeux : affiche toute la requête et toute la réponse |
-X METHODE |
Choisit la méthode HTTP (-X DELETE) |
-H "Nom: valeur" |
Ajoute un header |
-d '...' |
Envoie un body (et passe en POST par défaut) |
--json '...' |
Envoie du JSON, avec les headers Content-Type et Accept adaptés |
-s |
Mode silencieux (masque la barre de progression) |
Exemples
# Lire les headers de la réponse
curl -i http://api-ritif.portlatch.com/v1/cocktails/3
# Envoyer du JSON
curl -i -X POST http://api-ritif.portlatch.com/v1/orders \
-H "Content-Type: application/json" \
-H "X-API-Key: votre-cle" \
-d '{"cocktail_id": 3}'
# La même chose, en plus court
curl -i http://api-ritif.portlatch.com/v1/orders \
-H "X-API-Key: votre-cle" \
--json '{"cocktail_id": 3}'
# Supprimer
curl -i -X DELETE http://api-ritif.portlatch.com/v1/orders/42 -H "X-API-Key: votre-cle"
Pour rendre le JSON lisible, passez la réponse dans un formateur : curl -s ... | python3 -m json.tool ou curl -s ... | jq.
Sous Windows PowerShell, curl peut être un alias vers Invoke-WebRequest, qui n'a pas les mêmes options. Utilisez curl.exe, ou Git Bash.
Plutôt que de copier votre clé dans chaque commande, stockez-la dans une variable : export KEY=votre-cle, puis -H "X-API-Key: $KEY".
Bruno
Bruno est un client d'API graphique, open source et sans compte. On y enregistre ses requêtes dans des collections.
Sa particularité : une collection est un dossier de fichiers texte. On peut donc la versionner dans git et la partager avec son équipe comme du code.
Prise en main
- Installez Bruno depuis usebruno.com/downloads.
- Créez une collection
api-ritifdans un dossier de votre choix. - Créez un environnement avec deux variables :
baseUrl=http://api-ritif.portlatch.com/v1etapiKey= votre clé. - Créez une requête
GET {{baseUrl}}/cocktailset envoyez-la. - Dans l'onglet Headers d'une requête, ajoutez
X-API-Key: {{apiKey}}.
Et Postman ?
Postman est le client d'API le plus connu, et vous le croiserez sûrement en entreprise. Il fonctionne sur le même principe que Bruno.
On ne l'utilise pas dans ce cours : il demande un compte, et stocke les collections dans son cloud plutôt que dans votre dépôt git.