Temario para un Curso de Python Avanzado Orientado a API RESTful con FastAPI (12 clases de 3 horas)


Dirigido a

  • Desarrolladores con experiencia en Python que buscan especializarse en el desarrollo de APIs modernas y eficientes.
  • Profesionales interesados en aprender a crear aplicaciones web utilizando FastAPI.
  • Aquellos que desean implementar prácticas avanzadas en el diseño, desarrollo, pruebas, y despliegue de APIs RESTful.

Objetivos del Curso

Al finalizar el curso, los estudiantes serán capaces de:

  1. Diseñar y construir APIs RESTful completas y eficientes utilizando FastAPI.
  2. Implementar autenticación y autorización.
  3. Manejar bases de datos relacionales y no relacionales con ORM.
  4. Escribir pruebas automatizadas para APIs.
  5. Desplegar aplicaciones en ambientes de producción utilizando contenedores y Kubernetes.
  6. Optimizar y documentar APIs para usuarios y clientes.

Temario

Clase 1: Introducción a FastAPI y APIs RESTful

  • ¿Qué es FastAPI y por qué usarlo?
  • Fundamentos de las APIs RESTful.
  • Instalación y configuración del entorno.
  • Creación de un primer endpoint: GET, POST.
  • Prácticas: API básica para manejar una lista de tareas (To-Do).

Clase 2: Manejo de Datos y Validación con Pydantic

  • Introducción a Pydantic para modelos de datos.
  • Validación y conversión automática de datos.
  • Manejo de errores de validación.
  • Prácticas: Definición de esquemas y validación para una API de usuarios.

Clase 3: Rutas Avanzadas y Documentación

  • Organización de rutas usando APIRouter.
  • Documentación automática con OpenAPI/Swagger.
  • Versionado de la API.
  • Prácticas: Organización modular de rutas en un proyecto.

Clase 4: Métodos HTTP y CRUD Completo

  • Métodos HTTP avanzados: PUT, PATCH, DELETE.
  • Implementación de operaciones CRUD completas.
  • Prácticas: API para gestionar un catálogo de productos.

Clase 5: Autenticación y Autorización

  • Implementación de autenticación básica y tokens JWT.
  • Uso de OAuth2 con flujo de contraseña.
  • Autorización basada en roles y permisos.
  • Prácticas: Creación de un sistema de login y roles para usuarios.

Clase 6: Bases de Datos con SQLAlchemy

  • Introducción a SQLAlchemy y configuraciones básicas.
  • ORM: Creación de modelos y relaciones.
  • Operaciones CRUD con la base de datos.
  • Prácticas: Integrar una base de datos PostgreSQL a una API.

Clase 7: Bases de Datos NoSQL con MongoDB

  • Introducción a bases de datos NoSQL.
  • Conexión a MongoDB usando motor.
  • Diseño y operaciones con documentos.
  • Prácticas: API para manejar datos en MongoDB.

Clase 8: Middleware, Background Tasks y WebSockets

  • Introducción a middlewares personalizados.
  • Ejecución de tareas en segundo plano con BackgroundTasks.
  • Introducción a WebSockets.
  • Prácticas: Agregar logging middleware y notificaciones en tiempo real.

Clase 9: Pruebas Automatizadas con Pytest

  • Introducción a pruebas unitarias y de integración.
  • Configuración de pruebas para APIs con TestClient.
  • Mocking de servicios externos.
  • Prácticas: Escribir pruebas automatizadas para validar los endpoints.

Clase 10: Despliegue en Producción

  • Contenerización con Docker:
    • Escribir un Dockerfile para la aplicación.
    • Configuración de docker-compose.
  • Despliegue en plataformas cloud (ejemplo: GCP, AWS).
  • Prácticas: Contenerizar y desplegar la API en una máquina virtual.

Clase 11: Monitoreo y Optimización

  • Introducción al monitoreo de APIs con herramientas como Prometheus y Grafana.
  • Optimización de rendimiento usando caché (Redis).
  • Prácticas: Implementación de endpoints optimizados con caché.

Clase 12: Proyecto Final y Cierre

  • Desarrollo guiado de un proyecto final:
    • Ejemplo: Una API para gestionar reservas en un sistema de restaurante o citas médicas.
    • Integración de autenticación, bases de datos, pruebas y despliegue.
  • Repaso de conceptos clave y resolución de dudas.
  • Feedback y cierre del curso.

Evaluación del Curso

  1. Tareas prácticas: Desarrollar funcionalidades específicas después de cada clase.
  2. Proyecto final: Un proyecto completo que combine los conceptos aprendidos.
  3. Feedback continuo: Sesiones de retroalimentación durante el curso.

Precio

200.000 ( Doscientos mil pesos argentinos)

Nombre