131 lines
3.2 KiB
Markdown
131 lines
3.2 KiB
Markdown
# Exercice 1.3 "API REST" - Gauvain BOICHÉ
|
|
|
|
## Commandes lancées
|
|
|
|
### 1. Liste vide
|
|
curl -i http://127.0.0.1:8000/equipments
|
|
curl -i http://127.0.0.1:8000/equipments/1
|
|
|
|
### 2. Création
|
|
curl -i -X POST http://127.0.0.1:8000/equipments \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"hostname":"srv-dns-01","ip":"192.168.1.20"}'
|
|
|
|
### 3. Lecture
|
|
curl -i http://127.0.0.1:8000/equipments/1
|
|
|
|
### 4. Erreurs
|
|
curl -i http://127.0.0.1:8000/equipments/abc
|
|
curl -i http://127.0.0.1:8000/equipments/99
|
|
curl -i -X POST http://127.0.0.1:8000/equipments \
|
|
-H "Content-Type: application/json" -d '{"ip":"1.1.1.1"}'
|
|
|
|
## Résultats
|
|
|
|
curl -i -X POST http://127.0.0.1:8000/equipments -H "Content-Type: application/json" -d '{"hostname":"srv-dns-01","ip":"192.168.1.20"}'
|
|
|
|
### 1. Liste vide
|
|
|
|
#### Côté client
|
|
```
|
|
> curl -i http://127.0.0.1:8000/equipments
|
|
HTTP/1.0 200 OK
|
|
Server: BaseHTTP/0.6 Python/3.12.12
|
|
Date: Mon, 06 Jul 2026 14:21:49 GMT
|
|
Content-Type: application/json
|
|
Content-Length: 2
|
|
|
|
[]
|
|
|
|
> curl -i http://127.0.0.1:8000/equipments/1
|
|
HTTP/1.0 404 Not Found
|
|
Server: BaseHTTP/0.6 Python/3.12.12
|
|
Date: Mon, 06 Jul 2026 14:26:13 GMT
|
|
Content-Type: application/json
|
|
Content-Length: 41
|
|
|
|
{"erreur": "\u00e9quipement introuvable"}
|
|
|
|
```
|
|
#### Côté serveur
|
|
```
|
|
127.0.0.1 - - [06/Jul/2026 16:21:49] "GET /equipments HTTP/1.1" 200 -
|
|
127.0.0.1 - - [06/Jul/2026 16:24:39] "GET /equipments/1 HTTP/1.1" 404 -
|
|
```
|
|
|
|
### 2. Création
|
|
|
|
#### Côté client
|
|
```
|
|
> curl -i -X POST http://127.0.0.1:8000/equipments -H "Content-Type: application/json" -d '{"hostname":"srv-dns-01","ip":"192.168.1.20"}'
|
|
HTTP/1.0 201 Created
|
|
Server: BaseHTTP/0.6 Python/3.12.12
|
|
Date: Mon, 06 Jul 2026 14:26:31 GMT
|
|
Content-Type: application/json
|
|
Content-Length: 57
|
|
|
|
{"id": 1, "hostname": "srv-dns-01", "ip": "192.168.1.20"}
|
|
|
|
```
|
|
#### Côté serveur
|
|
```
|
|
127.0.0.1 - - [06/Jul/2026 16:26:31] "POST /equipments HTTP/1.1" 201 -
|
|
```
|
|
|
|
### 3. Lecture
|
|
|
|
#### Côté client
|
|
```
|
|
> curl -i http://127.0.0.1:8000/equipments/1
|
|
HTTP/1.0 200 OK
|
|
Server: BaseHTTP/0.6 Python/3.12.12
|
|
Date: Mon, 06 Jul 2026 14:26:45 GMT
|
|
Content-Type: application/json
|
|
Content-Length: 57
|
|
|
|
{"id": 1, "hostname": "srv-dns-01", "ip": "192.168.1.20"}
|
|
|
|
```
|
|
#### Côté serveur
|
|
```
|
|
127.0.0.1 - - [06/Jul/2026 16:26:45] "GET /equipments/1 HTTP/1.1" 200 -
|
|
```
|
|
|
|
### 4. Erreurs
|
|
|
|
#### Côté client
|
|
```
|
|
> curl -i http://127.0.0.1:8000/equipments/abc
|
|
HTTP/1.0 400 Bad Request
|
|
Server: BaseHTTP/0.6 Python/3.12.12
|
|
Date: Mon, 06 Jul 2026 14:27:32 GMT
|
|
Content-Type: application/json
|
|
Content-Length: 27
|
|
|
|
{"erreur": "id non entier"}
|
|
|
|
> curl -i http://127.0.0.1:8000/equipments/99
|
|
HTTP/1.0 404 Not Found
|
|
Server: BaseHTTP/0.6 Python/3.12.12
|
|
Date: Mon, 06 Jul 2026 14:30:26 GMT
|
|
Content-Type: application/json
|
|
Content-Length: 41
|
|
|
|
{"erreur": "\u00e9quipement introuvable"}
|
|
|
|
> curl -i -X POST http://127.0.0.1:8000/equipments -H "Content-Type: application/json" -d '{"ip":"1.1.1.1"}'
|
|
HTTP/1.0 400 Bad Request
|
|
Server: BaseHTTP/0.6 Python/3.12.12
|
|
Date: Mon, 06 Jul 2026 14:30:48 GMT
|
|
Content-Type: application/json
|
|
Content-Length: 35
|
|
|
|
{"erreur": "hostname et ip requis"}
|
|
```
|
|
#### Côté serveur
|
|
```
|
|
127.0.0.1 - - [06/Jul/2026 16:27:32] "GET /equipments/abc HTTP/1.1" 400 -
|
|
127.0.0.1 - - [06/Jul/2026 16:30:26] "GET /equipments/99 HTTP/1.1" 404 -
|
|
127.0.0.1 - - [06/Jul/2026 16:30:48] "POST /equipments HTTP/1.1" 400 -
|
|
```
|