Boost Academy
LearningAssessmentsProfile
Back
  • Live

Autenticación en REST APIs con Python

6h of live classes·HACK A BOSS·Spanish

Skills you will learn

  • REST APIs

Schedules

You need an active plan

To access live courses you need an active plan. We're working on making plans available soon — stay tuned.

There are no open calls right now, but don't miss out: save this course and we'll notify you as soon as a call opens.

Description

Learning objectives

Syllabus

Technical requirements

Prerequisites

Schedule details

Resources

No resources are available yet for this schedule

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