Semaine 11
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
## 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) :
|
||||
|
||||
```bash
|
||||
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**.
|
||||
Reference in New Issue
Block a user