1.5 KiB
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 :
- Utilisez
http.server.BaseHTTPRequestHandleretHTTPServer. - Stockez les équipements dans une liste Python en mémoire (
id,hostname,ip). GET /equipements→ renvoie la liste en JSON, code 200.GET /equipements/<id>→ renvoie l'équipement (200), une erreur JSON 404 s'il n'existe pas, 400 si l'idn'est pas un entier.POST /equipements→ crée un équipement à partir du JSON du corps ; renvoie 201 et l'objet créé ; renvoie 400 sihostnamemanque ou si le JSON est invalide.- Toutes les réponses portent l'en-tête
Content-Type: application/json. - 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.