Skip to content

Capítulo 1.2: Métodos HTTP y códigos de estado

Tiempo de estudio: 40 minutos


1. HTTP: El lenguaje de comunicación en el espacio

Imagina que eres el Centro de Control de Misiones (CCM), y el servidor API es una nave espacial. HTTP (HyperText Transfer Protocol) es la radiocomunicación entre vosotros.

Cada mensaje contiene:

  • Método → Qué hacer (por ejemplo, "enviar sonda")

  • Código de estado → Resultado de la operación ("¡sonda lanzada con éxito!")

💡 Analogía espacial: GET /stars = "CCM → Nave: ¡Informa las coordenadas de las estrellas!" 200 OK = "Nave → CCM: ¡Coordenadas transmitidas!"


2. Métodos HTTP principales

Cada método es como un tipo de comando para una misión espacial:

Método Análogo en el espacio Ejemplo de solicitud Descripción
GET Solicitud de datos (telescopio) GET /planets Obtener lista de planetas
POST Envío de nuevo objeto (lanzamiento de cohete) POST /satellites Crear nuevo satélite
PUT Actualización completa de objeto (corrección de órbita) PUT /satellites/iss Actualizar datos de la ISS
DELETE Destrucción de objeto (salida de órbita) DELETE /debris/123 Eliminar basura espacial

⚡ Ejemplo de código (Python):

import requests

# GET: Obtener datos sobre el cohete Falcon 9
# Usamos un endpoint real de la API de SpaceX
response = requests.get("https://api.spacexdata.com/v4/rockets/5e9d0d95eda69973a809d1ec")
print(response.status_code, response.json()['name']) # 200 Falcon 9

# POST: Crear una nueva publicación en una API de prueba
# Usamos el servicio sandbox jsonplaceholder
new_post = {"title": "Misión Artemis", "body": "Listo para el lanzamiento", "userId": 1}
response = requests.post("https://jsonplaceholder.typicode.com/posts", json=new_post)
print(response.status_code, response.json()['id'])  # 201 101 (o otro ID)


3. Códigos de estado importantes

La respuesta del servidor es como una señal de la nave espacial:

Grupo Código Análogo en el espacio Descripción
2xx 200 ✅ "¡Tarea completada!" Éxito
201 🚀 "¡Cohete lanzado!" Objeto creado
3xx 301 🌍 "CCM reubicado a nueva dirección" Redirección
4xx 400 ❌ "¡Coordenadas incorrectas en la solicitud!" Error del cliente
404 🪐 "¡Planeta no encontrado!" Recurso no encontrado
5xx 500 🔥 "¡Fallo en el sistema de propulsión!" Error del servidor

4. Práctica: Manejo de códigos de estado

¡Siempre verifica la respuesta de la API! Ejemplo de manejo de errores:

import requests

def get_post_data(post_id):
    """Función para obtener datos de una publicación con manejo de códigos de estado."""
    try:
        response = requests.get(f"https://jsonplaceholder.typicode.com/posts/{post_id}")

        # Verificamos el código de estado de la respuesta
        if response.status_code == 200:
            print(f"✅ ¡Datos para la publicación {post_id} obtenidos con éxito!")
            return response.json()
        elif response.status_code == 404:
            print(f"⚠️ ¡Recurso para la publicación {post_id} no encontrado!")
            return None
        else:
            # Manejo de otros errores de cliente (4xx) o de servidor (5xx)
            print(f"🚨 ¡Ocurrió un error! Código de estado: {response.status_code}")
            return None

    except requests.exceptions.RequestException as e:
        # Manejo de errores de conexión (por ejemplo, sin internet)
        print(f"🔥 Error de conexión: {e}")
        return None

# --- Probando nuestra función ---
print("--- Buscando publicación existente ---")
get_post_data(1)

print("\n--- Buscando publicación inexistente ---")
get_post_data(9999) # Esta publicación no existe, esperamos 404

🔭 Ejemplo de una API real (SpaceX): Solicitud: GET https://api.spacexdata.com/v4/ships/OCISLY Respuesta: 200 OK + datos de la nave Solicitud: GET https://api.spacexdata.com/v4/ships/UNICORN Respuesta: 404 Not Found


Cuestionario de consolidación

1. ¿Qué método usar para obtener datos sobre las estrellas?

2. El estado `201 Created` significa:

3. Método para la actualización completa de los datos de un satélite:

4. ¿Qué significa el estado `500 Internal Server Error`?


🚀 Resumen del capítulo: Los métodos HTTP son vuestros comandos para misiones espaciales, y los códigos de estado son los informes de su ejecución. Recordad:

GET = "Dame datos", POST = "Crea nuevo", PUT = "Actualiza todo", DELETE = "Destruye" 2xx = Éxito, 4xx = Tu error, 5xx = Problema del servidor

¡Preparados para el lanzamiento! En el próximo capítulo descifraremos los "telegramas" del servidor: el formato JSON.

📌 Práctica: ¡Usad la API de SpaceX para enviar GET /launches/latest y estudiar los códigos de respuesta!