Files
live-campus-mcs-p-2027.2/Semaine_11/Jour_01/Exercice 1.3 - API REST d'invent.md
T
gauvainboiche 0d071d2843 Semaine 11
2026-07-11 21:38:00 +02:00

1.5 KiB

Exercice 1.3 — API REST d'inventaire sans framework

Compétences visées : comprendre HTTP/REST « de l'intérieur » — méthodes, codes de statut, JSON — en n'utilisant que la bibliothèque standard.

Contexte : vous exposez l'inventaire via une petite API REST bâtie avec le module http.server. Flask, Django et toute bibliothèque tierce sont interdits.

Consignes :

  1. Utilisez http.server.BaseHTTPRequestHandler et HTTPServer.
  2. Stockez les équipements dans une liste Python en mémoire (id, hostname, ip).
  3. GET /equipements → renvoie la liste en JSON, code 200.
  4. GET /equipements/<id> → renvoie l'équipement (200), une erreur JSON 404 s'il n'existe pas, 400 si l'id n'est pas un entier.
  5. POST /equipements → crée un équipement à partir du JSON du corps ; renvoie 201 et l'objet créé ; renvoie 400 si hostname manque ou si le JSON est invalide.
  6. Toutes les réponses portent l'en-tête Content-Type: application/json.
  7. Testez votre API (serveur lancé sur le port 8000) :
curl http://127.0.0.1:8000/equipements
curl http://127.0.0.1:8000/equipements/1
curl -X POST http://127.0.0.1:8000/equipements \
     -H "Content-Type: application/json" \
     -d '{"hostname":"srv-dns-01","ip":"192.168.1.20"}'

Livrables : api_inventaire.py, TESTS.md (vos commandes curl et les réponses obtenues), USAGE-IA.md.

Critères d'évaluation : bonnes méthodes et bons codes HTTP, JSON valide, gestion des erreurs (400/404), aucun framework.