Skills que aprenderás
Convocatorias
No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una 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:
.env y python-dotenv, configurar .gitignore para evitar filtrarlas al repositorio y añadir comprobaciones que detengan el script si faltan variables obligatoriasMecanismos 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
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é
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
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
requests, python-dotenv→ API01 — Fundamentos de REST APIs (Iniciación, 4h)