Fundamentos de las API REST para recopilar datos
HTTP GET/POST, cabeceras, autenticación (API key, Bearer) y análisis de JSON con requests.
Fundamentos de las API REST para recopilar datos es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.
Por qué las API son importantes para la IA
Los modelos solo pueden ser tan buenos como los datos con los que se entrenan. Las API web permiten recopilar datos estructurados y actualizados cuando los necesita —como información meteorológica, precios, publicaciones en redes sociales o conjuntos de datos públicos— en lugar de depender de un único archivo estático.
En este curso se utilizan Python y la popular biblioteca requests para obtener y almacenar esos datos.
¿Qué es una API REST?
Una API REST expone recursos mediante HTTP. Se envía una solicitud a una URL (endpoint) y se reciben datos, normalmente en formato JSON.
Los principales métodos HTTP son:
GET— leer datosPOST— crear datosPUT/PATCH— actualizar datosDELETE— eliminar datos
Para recopilar datos, normalmente se utiliza GET.
Primera solicitud GET
requests.get(url) envía una solicitud GET y devuelve un objeto Response. La respuesta contiene el estado, las cabeceras y el cuerpo.
import requests
resp = requests.get("https://api.example.com/users")
print(resp.status_code) # 200
print(resp.text[:200]) # raw body as a stringComprobación de response.status_code
El código de estado indica si la solicitud se realizó correctamente:
200correcto301/302redirección400solicitud incorrecta401/403problema de autenticación404no encontrado429límite de solicitudes excedido500error del servidor
resp = requests.get(url)
if resp.status_code == 200:
print("Success")
else:
print("Failed:", resp.status_code)Análisis de JSON con response.json()
La mayoría de las API devuelven JSON. response.json() analiza automáticamente el cuerpo y lo convierte en diccionarios y listas de Python.
No analice el JSON manualmente: .json() se encarga de ello y genera un error claro si el cuerpo no contiene un JSON válido.
resp = requests.get("https://api.example.com/users/1")
data = resp.json()
print(data["name"])
print(data["email"])Envío de parámetros de consulta con params
Filtre y configure las solicitudes mediante parámetros de consulta. Pase un diccionario a params y requests construirá la URL por usted, gestionando la codificación.
En la URL, el ejemplo se convierte en ?city=London&units=metric.
params = {"city": "London", "units": "metric"}
resp = requests.get("https://api.example.com/weather", params=params)
print(resp.url)
print(resp.json())Envío de cabeceras
Las cabeceras contienen metadatos como el tipo de contenido, un agente de usuario o una clave o token de API. Páselas como un diccionario a headers.
Muchas API requieren una cabecera Authorization para permitir el acceso.
headers = {
"Authorization": "Bearer YOUR_TOKEN",
"User-Agent": "my-data-collector/1.0",
}
resp = requests.get("https://api.example.com/data", headers=headers)
print(resp.json())raise_for_status() para obtener código robusto
En lugar de comprobar los códigos manualmente, llame a resp.raise_for_status(). Genera un HTTPError para cualquier respuesta 4xx o 5xx, de modo que los fallos se hagan visibles de inmediato.
Inclúyalo en un bloque try/except para gestionar los errores correctamente.
import requests
try:
resp = requests.get(url, timeout=10)
resp.raise_for_status()
data = resp.json()
except requests.HTTPError as e:
print("HTTP error:", e)
except requests.RequestException as e:
print("Network error:", e)Establezca siempre un tiempo de espera
Sin un timeout, un servidor bloqueado puede dejar el script esperando indefinidamente. Pase siempre uno (en segundos).
En los bucles de recopilación de datos que acceden a miles de endpoints, la ausencia de un tiempo de espera es una causa frecuente de tareas bloqueadas.
resp = requests.get(url, timeout=10) # give up after 10 secondsReutilización de conexiones con Session
Una requests.Session reutiliza la conexión TCP subyacente entre solicitudes y permite establecer las cabeceras una sola vez. Para muchas llamadas al mismo host, esto es mucho más rápido.
import requests
session = requests.Session()
session.headers.update({"Authorization": "Bearer YOUR_TOKEN"})
for uid in [1, 2, 3]:
resp = session.get(f"https://api.example.com/users/{uid}")
print(resp.json()["name"])
session.close()Una función auxiliar de obtención limpia
Encapsule este patrón en una función reutilizable: configure una sesión, aplique un tiempo de espera, genere errores cuando corresponda y devuelva el JSON analizado.
En las próximas lecciones ampliará esta función auxiliar para trabajar con paginación y almacenamiento.
def fetch_json(session, url, params=None):
resp = session.get(url, params=params, timeout=10)
resp.raise_for_status()
return resp.json()Comprobación rápida: solicitudes robustas
Quiere que el código genere automáticamente una excepción cuando reciba una respuesta 404 o 500.
Resumen: fundamentos de las API REST
Ya puede recopilar datos mediante HTTP:
requests.get(url, params=..., headers=...)para realizar solicitudesresponse.status_codeyraise_for_status()para detectar fallosresponse.json()para analizar el cuerpotimeoutpara evitar bloqueosrequests.Sessionpara reutilizar conexiones y cabeceras
A continuación: recopilación de conjuntos de datos que abarcan muchas páginas.
Preguntas frecuentes
¿La lección «Fundamentos de las API REST para recopilar datos» es gratis?
Sí — el texto completo de «Fundamentos de las API REST para recopilar datos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Qué aprenderé en «Fundamentos de las API REST para recopilar datos»?
HTTP GET/POST, cabeceras, autenticación (API key, Bearer) y análisis de JSON con requests. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn AI with Python?
No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Fundamentos de las API REST para recopilar datos»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?
Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Fundamentos de las API REST para recopilar datos
- Paginación y recopilación de grandes conjuntos de datos
- Almacenamiento eficiente de datos recopilados
- Uso de API de datos públicos