HACK A BOSS
FormaciónEvaluacionesPerfil
Volver
  • En directo

Autenticación en REST APIs con Python

6h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • REST APIs

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la convocatoria

Recursos

No hay recursos disponibles todavía para esta convocatoria

Curso práctico sobre autenticación e integración de REST APIs en código Python, orientado a perfiles que ya saben consumir APIs con Postman o curl y quieren incorporar esa capacidad en sus aplicaciones y scripts de forma correcta y segura. El curso cubre el panorama de los mecanismos de autenticación más habituales —API Key, Bearer token con JWT y OAuth 2.0—, la implementación de cada uno con la librería requests, la gestión segura de credenciales con variables de entorno y python-dotenv, el manejo diferenciado de errores de autenticación y autorización, y la construcción de un cliente HTTP reutilizable que integra todas estas piezas. Al finalizar, el participante será capaz de construir un módulo Python que autentique peticiones a APIs reales, gestione los errores de forma informativa y mantenga las credenciales fuera del código fuente.

Al finalizar el curso, el participante será capaz de:

  • Distinguir los mecanismos de autenticación más habituales en APIs REST —API Key, Bearer token con JWT y OAuth 2.0— y seleccionar el más adecuado según el caso de uso
  • Almacenar credenciales de API en variables de entorno con ficheros .env y python-dotenv, configurar .gitignore para evitar filtrarlas al repositorio y añadir comprobaciones que detengan el script si faltan variables obligatorias
  • Implementar peticiones autenticadas con API Key enviándola tanto en cabecera HTTP personalizada como como query parameter, justificando cuál es más seguro y cuándo usar cada opción
  • Implementar el flujo completo de autenticación con Bearer token: realizar la petición de login, extraer el JWT de la respuesta y usarlo en peticiones posteriores a endpoints protegidos
  • Gestionar errores de autenticación (401) y autorización (403) en código, interpretando el motivo del fallo a partir del código de estado y el cuerpo de la respuesta y aplicando la acción correcta
  • Construir un cliente HTTP funcional en Python que integre autenticación con Bearer token, manejo de errores diferenciado por código de estado y lectura correcta del payload JSON de la respuesta
  1. Mecanismos de autenticación: panorama y criterios de elección API Key: identificador opaco sin estructura interna, el servidor consulta su base de datos para conocer permisos; Bearer token con JWT: token autocontenido con claims (sub, exp, roles), validación sin consultar la base de datos; OAuth 2.0: delegación de acceso sin compartir contraseña del usuario, flujo Authorization Code; criterios de selección según el caso: comunicación máquina a máquina, usuarios individuales, o delegación de acceso a datos de terceros

  2. Variables de entorno y API Key Riesgos de hardcodear credenciales en el código: historial de Git como vector de filtración, escáneres automáticos de secretos; fichero .env: formato clave=valor, valores ficticios realistas; fichero .env.example como plantilla para el equipo; .gitignore: incluir .env desde el primer commit; python-dotenv: load_dotenv() y os.getenv(); comprobación de variables obligatorias; implementación de peticiones con API Key en cabecera personalizada (X-Api-Key) y como query parameter con requests.get(headers=...) y params=...; diferencia de seguridad entre ambos métodos respecto a logs y caché

  3. Bearer tokens, JWT y manejo de errores de autenticación Estructura del JWT: header (algoritmo), payload (claims: sub, exp, datos de negocio) y firma; el payload está codificado en Base64 pero no cifrado; formato estándar en la cabecera: Authorization: Bearer <token> según RFC 6750; flujo login → extracción del token → petición autenticada con requests.post(json=...) y requests.get(headers=...); gestión de errores de autenticación: 401 (token inválido o expirado: reautenticar), 403 (token válido pero sin permisos: revisar scope o rol); extracción del motivo del error del cuerpo JSON con .get("message", "desconocido"); raise_for_status() frente a comprobación manual de status_code

  4. Cliente HTTP completo (entregable integrador) Construcción de un módulo Python con una función o clase que encapsule la lógica de autenticación y petición; carga del token desde variable de entorno con verificación; cabeceras correctas incluyendo Accept y Authorization; manejo diferenciado de 200, 401, 403, 404 y caso genérico con código de estado; response.json() frente a response.text: parseo y gestión de JSONDecodeError; uso de python-dotenv para las credenciales; bloque main que itera sobre los resultados e imprime campos relevantes

  • Python 3.x instalado
  • pip con acceso a instalar paquetes: requests, python-dotenv
  • Editor de código (VS Code recomendado)
  • Terminal: bash, zsh o PowerShell
  • Cuenta en al menos una API pública con autenticación para los ejercicios (WeatherAPI, GitHub, OpenWeatherMap u otra indicada por el docente)
  • Git instalado para practicar la configuración de .gitignore

→ API01 — Fundamentos de REST APIs (Iniciación, 4h)

  • Identificar los componentes de una REST API y la semántica de los métodos HTTP (GET, POST, PUT, PATCH, DELETE)
  • Interpretar códigos de estado HTTP (2xx, 4xx, 5xx) y leer payloads JSON en respuestas
  • Realizar peticiones con Postman y curl configurando cabeceras como Content-Type y Authorization
  • Construir URLs con query parameters para filtrar, ordenar y paginar resultados