# 📘 Documentation API d' ✈️AeroTrack🛰️
L'API publique permet de récupérer en temps réel la position des avions simulés. Aucune authentification n'est requise.
Ce document ne contient que des commandes `curl`, prêtes à être copiées-collées par les élèves.
**Base URL** : `https://projets.duckdns.org/projet11/api`
---
## 🎓 Ce que les élèves vont apprendre avec ✈️AéroTrack
* Interroger une API REST avec `curl`
* Manipuler du *JSON* et extraire des données
* Construire une application cliente (*HTML*/*JS*/*CSS*) qui affiche des positions GPS sur une carte
* Comprendre le temps réel (polling toutes les X secondes)
## 1️⃣ Endpoint : Liste des avions actifs
:::info
✈️ Récupère les identifiants de tous les avions actuellement en vol ou au sol.
:::
**Requête HTTP :**
```bash
bash
curl https://projets.duckdns.org/projet11/api/avions
```
**Réponse du serveur :**
```bash
json
[
{ "id": "AF123", "statut": "en_vol" },
{ "id": "LH456", "statut": "en_vol" }
]
```
## 2️⃣ Endpoint : Détails d'un avion spécifique
:::info
✈️ Récupère toutes les informations d'un avion (position, altitude, vitesse, cap, progression, etc.) en remplaçant {id} par le code de l'avion (ex: AF123).
:::
**Requête HTTP :**
```bash
bash
curl https://projets.duckdns.org/projet11/api/avion/AF123
```
**Réponse du serveur :**
```bash
json
{
"id": "AF123",
"statut": "en_vol",
"lat": 48.4567,
"lng": 3.1234,
"altitude": 7800,
"vitesse": 650,
"cap": 142,
"progression_percent": 61
}
```
## 3️⃣ Endpoint : État du serveur
:::info
✈️ Vérifie si l'API fonctionne et donne le nombre d'avions actuellement en vol.
:::
**Requête HTTP :**
```bash
bash
curl https://projets.duckdns.org/projet11/api/status
```
**Réponse du serveur :**
```bash
json
{
"status": "online",
"avions_en_vol": 3
}
```
:::warning
**📌 Codes d'erreur**
Code Signification
200 Succès (la requête a fonctionné)
404 Avion non trouvé (l'identifiant n'existe pas)
500 Erreur interne du serveur
:::
## 🧪 Extraire du json renvoyé une information précise grâce à `jq`
:::info
`jq` est un outil en ligne de commande qui permet de filtrer, transformer et formater des données *JSON*, un peu comme `grep` ou `sed` pour le texte.
:::
Si `jq` est installé :
```bash
bash
# Afficher uniquement la position
curl -s https://projets.duckdns.org/projet11/api/avion/AF123 | jq '{lat, lng}'
# Afficher la progression
curl -s https://projets.duckdns.org/projet11/api/avion/AF123 | jq '.progression_percent'
```
## 📌 Codes d'erreur
| Code | Signification |
|------|---------------|
| 200 | Succès (la requête a fonctionné) |
| 404 | Avion non trouvé (l'identifiant n'existe pas) |
| 500 | Erreur interne du serveur |
---