Skip to content

Chapitre 1.2 : Méthodes HTTP et codes de statut

Temps d'étude : 40 minutes


1. HTTP : Le langage de communication dans l'espace

Imaginez que vous êtes le Centre de Contrôle de Mission (CCM), et le serveur API est le vaisseau spatial. HTTP (HyperText Transfer Protocol) est la communication radio entre vous.

Chaque message contient :

  • Méthode → Ce qu'il faut faire (par exemple, "envoyer une sonde")

  • Code de statut → Résultat de l'opération ("sonde lancée avec succès !")

💡 Analogie spatiale : GET /stars = "CCM → Vaisseau : Donne les coordonnées des étoiles !" 200 OK = "Vaisseau → CCM : Coordonnées transmises !"


2. Méthodes HTTP principales

Chaque méthode est comme un type de commande pour une mission spatiale :

Méthode Analogie spatiale Exemple de requête Description
GET Demande de données (télescope) GET /planets Obtenir la liste des planètes
POST Envoi d'un nouvel objet (lancement de fusée) POST /satellites Créer un nouveau satellite
PUT Mise à jour complète d'un objet (correction d'orbite) PUT /satellites/iss Mettre à jour les données de l'ISS
DELETE Destruction d'un objet (désorbitation) DELETE /debris/123 Supprimer les débris spatiaux

⚡ Exemple de code (Python) :

import requests

# GET : Obtenir les données de la fusée Falcon 9
# Nous utilisons un endpoint réel de l'API SpaceX
response = requests.get("https://api.spacexdata.com/v4/rockets/5e9d0d95eda69973a809d1ec")
print(response.status_code, response.json()['name']) # 200 Falcon 9

# POST : Créer un nouveau post dans une API de test
# Nous utilisons le service bac à sable jsonplaceholder
new_post = {"title": "Artemis Mission", "body": "Ready for launch", "userId": 1}
response = requests.post("https://jsonplaceholder.typicode.com/posts", json=new_post)
print(response.status_code, response.json()['id'])  # 201 101 (ou autre ID)


3. Codes de statut importants

La réponse du serveur est comme un signal d'un vaisseau spatial :

Groupe Code Analogie spatiale Description
2xx 200 ✅ "Mission accomplie !" Succès
201 🚀 "Fusée lancée !" Objet créé
3xx 301 🌍 "Le CCM a été déplacé vers une nouvelle adresse" Redirection
4xx 400 ❌ "Coordonnées incorrectes dans la requête !" Erreur client
404 🪐 "Planète introuvable !" Ressource introuvable
5xx 500 🔥 "Panne du système de propulsion !" Erreur serveur

4. Pratique : Gestion des codes de statut

Vérifiez toujours la réponse de l'API ! Exemple de gestion des erreurs :

import requests

def get_post_data(post_id):
    """Fonction pour obtenir les données d'un post avec gestion des codes de statut."""
    try:
        response = requests.get(f"https://jsonplaceholder.typicode.com/posts/{post_id}")

        # Vérifie le code de statut de la réponse
        if response.status_code == 200:
            print(f"✅ Données pour le post {post_id} obtenues avec succès !")
            return response.json()
        elif response.status_code == 404:
            print(f"⚠️ Ressource pour le post {post_id} introuvable !")
            return None
        else:
            # Gère les autres erreurs client (4xx) ou serveur (5xx)
            print(f"🚨 Une erreur est survenue ! Code de statut : {response.status_code}")
            return None

    except requests.exceptions.RequestException as e:
        # Gère les erreurs de connexion (par exemple, pas d'internet)
        print(f"🔥 Erreur de connexion : {e}")
        return None

# --- Testons notre fonction ---
print("--- Recherche d'un post existant ---")
get_post_data(1)

print("\n--- Recherche d'un post inexistant ---")
get_post_data(9999) # Ce post n'existe pas, nous attendons 404

🔭 Exemple d'une API réelle (SpaceX) : Requête : GET https://api.spacexdata.com/v4/ships/OCISLY Réponse : 200 OK + données sur le vaisseau Requête : GET https://api.spacexdata.com/v4/ships/UNICORN Réponse : 404 Not Found


Quiz de consolidation

1. Quelle méthode utiliser pour obtenir des données sur les étoiles ?

2. Le statut `201 Created` signifie :

3. La méthode pour une mise à jour complète des données d'un satellite :

4. Que signifie le statut `500 Internal Server Error` ?


🚀 Résumé du chapitre : Les méthodes HTTP sont vos commandes pour les missions spatiales, et les codes de statut sont les rapports sur leur exécution. Rappelez-vous :

GET = "Donne les données", POST = "Crée un nouveau", PUT = "Mets tout à jour", DELETE = "Supprime" 2xx = Succès, 4xx = Ton erreur, 5xx = Problème côté serveur

Préparez-vous au lancement ! Dans le prochain chapitre, nous déchiffrerons les "télégrammes" du serveur : le format JSON.

📌 Pratique : Utilisez l'API SpaceX pour envoyer un GET /launches/latest et étudier les codes de réponse !