Python · Sección 11

API, automatización y scripts confiables

Solicitudes HTTP, JSON, paginación, reintentos, credenciales, argumentos de terminal e idempotencia para automatizar con seguridad.

3
lecciones
3
ejercicios resueltos
CONTENIDO ORIGINAL

Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.

ANTES DE EMPEZAR

Ubícate antes de avanzar

01 / PUNTO DE PARTIDA

Conviene haber comprendido Pruebas, depuración y calidad.

02 / META OBSERVABLE

Al terminar deberías poder relacionar HTTP y JSON con Paginación y reintentos y resolver un caso nuevo.

03 / TIEMPO SUGERIDO

Reserva entre 75 y 120 minutos o divide el laboratorio en dos sesiones.

04 / PREPARA EL LABORATORIO

Instala Python 3 y utiliza IDLE o un editor como VS Code. Desde NumPy y Pandas trabaja dentro de un entorno virtual.

Abrir la guía de herramientas →
Diagnóstico rápido: ¿cómo se relacionan HTTP y JSON y Paginación y reintentos?

No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.

Ruta guiada · 3 lecciones

Aprende el tema paso a paso

Conectarás Python con servicios HTTP y convertirás un script manual en una tarea repetible, cuidadosa con credenciales, límites de uso y efectos duplicados.

Al terminar podrás
  • Una API tiene contrato, estado y límites; no es solo una URL
  • Paginación, reintentos y caché deben evitar pérdida y duplicación
  • Un script automatizable recibe parámetros, deja evidencia y puede repetirse
01
Pedir datos por HTTP

Una API tiene contrato, estado y límites; no es solo una URL

Una solicitud combina método, dirección, parámetros y encabezados. La respuesta incluye un código de estado y un cuerpo cuyo formato debe validarse. timeout evita esperar indefinidamente y raise_for_status separa respuestas exitosas de errores HTTP.

01

GET consulta; POST suele crear o iniciar una operación.

02

Los códigos 2xx indican éxito; 4xx y 5xx requieren decisiones distintas.

03

JSON debe validarse antes de asumir campos y tipos.

Comprueba lo aprendido · 01

¿Por qué siempre conviene declarar timeout?

Mostrar respuesta

Porque una conexión puede quedar esperando mucho tiempo. Un límite permite informar, reintentar solo cuando corresponde o terminar de forma controlada.

02
Hacerlo resistente

Paginación, reintentos y caché deben evitar pérdida y duplicación

Muchas API entregan datos por páginas y limitan solicitudes. Un proceso robusto registra qué página confirmó, respeta Retry-After, reintenta fallos transitorios con espera y evita repetir efectos ya completados. Los errores de autenticación o de datos no se arreglan repitiendo sin límite.

01

Guarda progreso después de validar cada página.

02

Reintenta 429 o fallos temporales con espera limitada.

03

Usa una identidad estable para que repetir sea seguro.

Comprueba lo aprendido · 02

¿Por qué no se debe reintentar automáticamente un 401 muchas veces?

Mostrar respuesta

Porque indica un problema de autenticación que esperar no resolverá. Repetir solo aumenta tráfico y puede bloquear la cuenta; hay que revisar credenciales y permisos sin exponer el secreto.

03
Automatizar con seguridad

Un script automatizable recibe parámetros, deja evidencia y puede repetirse

Una tarea confiable no depende de editar el archivo antes de cada ejecución. Recibe rutas y fechas como argumentos, registra lo realizado, devuelve un código de salida útil y separa credenciales mediante variables de entorno. Antes de programarla, se comprueba que repetirla no duplique mensajes, cobros ni archivos.

01

argparse documenta parámetros y genera ayuda.

02

pathlib evita concatenar rutas manualmente.

03

Las credenciales no se escriben en el código ni se publican.

Comprueba lo aprendido · 03

¿Qué significa que una automatización sea idempotente?

Mostrar respuesta

Que repetir la misma operación con la misma identidad no produce efectos adicionales incorrectos. Por ejemplo, no vuelve a enviar un informe ya confirmado ni duplica las filas importadas.

Resumen de la sección

Tu recorrido en tres ideas

  1. Una API tiene contrato, estado y límites; no es solo una URL
  2. Paginación, reintentos y caché deben evitar pérdida y duplicación
  3. Un script automatizable recibe parámetros, deja evidencia y puede repetirse
PROFUNDIZACIÓN / LABORATORIO GUIADO

Construye una descarga que pueda detenerse y continuar

Relaciona contrato HTTP, paginación, fallos transitorios, progreso e idempotencia en una tarea repetible.

CASO

Una API pública entrega miles de registros por páginas, limita solicitudes y a veces responde temporalmente con error.

Procedimiento

  1. Define parámetros, identidad de registros, timeout y esquema esperado.
  2. Confirma cada página antes de avanzar y reintenta solo errores transitorios con espera.
  3. Interrumpe la ejecución, reiníciala y comprueba que no falten ni se dupliquen datos.

Evidencia mínima

  • Páginas solicitadas y confirmadas.
  • Conteo recibido, válido y deduplicado.
  • Registro de reintentos sin URL secretas ni credenciales.
Mostrar razonamiento modelo

El proceso guarda progreso durable después de validar. Un 429 respeta Retry-After; un 401 se detiene; la identidad de origen permite repetir sin duplicar. La salida solo se publica cuando los controles cuadran.

Para ir más lejos

¿Qué harías si el contenido de una página ya confirmada cambia en la fuente?

CIERRE DE LA SECCIÓN

Comprueba que puedes usarlo

Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.

ERROR 01

Asumir que toda respuesta HTTP contiene JSON válido y los campos esperados.

ERROR 02

Reintentar indefinidamente o guardar credenciales dentro del código.

DESAFÍO INTEGRADOR

Ahora hazlo sin guía

Diseña un comando que descargue páginas de una API pública, pueda reanudarse y no duplique registros al repetirse.

Mostrar pauta de corrección
Una respuesta sólida:
  • Define timeout, estados reintentables y validación del esquema.
  • Registra página confirmada, conteos e identificadores sin exponer secretos.
  • La segunda ejecución conserva un resultado único y verificable.