Interagir avec une API REST Cisco via Postman : Le Guide Pratique CCNA
Introduction
Dans l’évolution des réseaux, le rôle de l’ingénieur réseau s’est transformé. Fini le temps où l’on configurait chaque équipement en tapant des lignes de commande (CLI) une par une. Aujourd’hui, la programmabilité et l’automatisation sont au cœur du programme CCNA. L’une des compétences clés à maîtriser est l’interaction avec les équipements réseau via des interfaces de programmation, ou API REST. Dans cet article, nous allons explorer les concepts fondamentaux et mettre en pratique ces connaissances à l’aide de l’outil Postman.
Théorie : Programmabilité Réseau et API REST
Une API REST (Representational State Transfer Application Programming Interface) permet à deux systèmes informatiques de communiquer entre eux de manière standardisée, en s’appuyant sur les protocoles du Web. Pour les équipements Cisco (comme ceux fonctionnant sous IOS XE), cela signifie que nous pouvons envoyer des requêtes pour récupérer la configuration ou appliquer des modifications, sans passer par SSH ou Telnet.
Les verbes HTTP : GET et POST
L’interaction avec une API REST se fait principalement grâce aux méthodes (ou verbes) HTTP :
- GET : Utilisé pour lire ou récupérer des informations depuis l’équipement réseau (ex : obtenir l’état des interfaces).
- POST : Utilisé pour créer une nouvelle ressource (ex : configurer une nouvelle interface loopback).
- PUT / PATCH : Utilisés pour mettre à jour ou modifier une ressource existante.
- DELETE : Utilisé pour supprimer une configuration.
Le format JSON (JavaScript Object Notation)
Lorsque nous communiquons avec une API REST, les données échangées doivent être structurées dans un format lisible à la fois par les humains et les machines. Le format le plus courant est le JSON. Il est basé sur des paires clé-valeur (key-value pairs) et des listes.
{
"interface": {
"name": "GigabitEthernet1",
"description": "Lien vers le routeur Core",
"enabled": true,
"ipv4": {
"address": "192.168.1.1",
"netmask": "255.255.255.0"
}
}
}
Ce format léger et structuré est idéal pour analyser les configurations réseau ou envoyer de nouvelles commandes via notre API.
Cas Pratique : Interagir avec Cisco IOS XE via Postman
Postman est un client HTTP graphique très populaire qui permet de construire et d’envoyer facilement des requêtes vers une API REST. Imaginons que nous souhaitons interroger un routeur Cisco IOS XE (configuré pour accepter les connexions RESTCONF) pour obtenir la liste de ses interfaces.
Étape 1 : Préparation dans Postman
- Ouvrez Postman et créez une nouvelle requête (New Request).
- Sélectionnez la méthode HTTP GET dans le menu déroulant.
- Entrez l’URL de l’API RESTCONF du routeur. Par exemple :
https://<IP_DU_ROUTEUR>/restconf/data/ietf-interfaces:interfaces
Étape 2 : Configuration de l’Authentification
Le routeur n’accepte pas les requêtes anonymes. Nous devons fournir nos identifiants :
- Allez dans l’onglet Authorization.
- Sélectionnez le type Basic Auth.
- Entrez le nom d’utilisateur (Username) et le mot de passe (Password) configurés sur le routeur avec le niveau de privilège 15.
Étape 3 : Définition des Headers (En-têtes)
Il est crucial de spécifier au routeur dans quel format nous souhaitons recevoir la réponse :
- Allez dans l’onglet Headers.
- Ajoutez une clé nommée
Acceptavec pour valeurapplication/yang-data+json. - Ajoutez (si Postman ne le fait pas automatiquement) une clé
Content-Typeavec la même valeurapplication/yang-data+json.
Étape 4 : Exécution et Analyse
- Cliquez sur le bouton bleu Send.
- Si le certificat SSL du routeur n’est pas reconnu (auto-signé), assurez-vous d’avoir désactivé la vérification SSL dans les paramètres de Postman (Settings > SSL certificate verification = OFF).
- Dans la section de réponse en bas, vous devriez obtenir un code de statut 200 OK.
- Le corps de la réponse (Body) affichera les données des interfaces au format JSON. Félicitations, vous venez de communiquer avec votre routeur via une API REST !
Conclusion
L’utilisation de Postman pour interagir avec des API REST est une compétence fondamentale pour l’ingénieur réseau d’aujourd’hui, et elle est particulièrement mise en avant dans la certification CCNA. Comprendre comment structurer une requête HTTP (GET, POST), gérer l’authentification et lire des données JSON vous ouvre les portes de l’automatisation réseau avec Python et Ansible. N’hésitez pas à pratiquer sur des environnements de laboratoire (comme Cisco DevNet) pour consolider ces acquis. Bonne configuration !