01. Introducción
Tecnologías que usaremos
Tecnologías que usaremos
En este proyecto se utilizará un conjunto de herramientas modernas y ligeras del ecosistema Python, ideales para desarrollar y desplegar una API profesional desde cero.
Cada una cumple un papel específico en el flujo de trabajo: desde la escritura del código, hasta la ejecución local y el despliegue final.
Python
Es el lenguaje base del proyecto.
Python se caracteriza por su sintaxis clara, su enorme ecosistema de librerías y su compatibilidad con frameworks modernos como FastAPI.
En este proyecto se usará la versión 3.
FastAPI
Es el framework principal del proyecto.
FastAPI permite crear APIs modernas, rápidas y seguras con una sintaxis simple y soporte automático para validación de datos, documentación interactiva y tipado estático.
Está construido sobre Starlette (para la parte del servidor) y Pydantic (para la validación de datos), lo que lo convierte en una herramienta eficiente y robusta.
Características clave:
- Soporte para tipos de datos (type hints) que facilitan el autocompletado y las validaciones.
- Generación automática de documentación con Swagger y ReDoc. En nuestro caso, usaremos Scalar.
- Rendimiento similar a frameworks de alto nivel como Node.js (gracias a ASGI y Uvicorn).
Uvicorn
Uvicorn es el servidor ASGI (Asynchronous Server Gateway Interface) que ejecutará la aplicación FastAPI.
Es el encargado de recibir las peticiones HTTP, procesarlas y devolver las respuestas.
Permite ejecutar la aplicación localmente durante el desarrollo y en servidores de producción ligeros.
Pydantic
Pydantic se utiliza para definir los modelos de datos (por ejemplo, una película).
Valida automáticamente que los datos enviados o recibidos tengan el formato correcto (tipos, campos requeridos, límites, etc.).
Pydantic convierte y valida la información de entrada antes de que llegue a la lógica principal de la API.
Entorno virtual (venv) y pip
Se usará un entorno virtual (.venv) para instalar las dependencias de forma aislada del sistema.
Esto garantiza que las versiones de librerías sean reproducibles en cualquier máquina.
JSON (JavaScript Object Notation)
Los datos del catálogo se guardarán en archivos JSON.
Este formato se utiliza porque es ligero, legible y compatible con prácticamente cualquier lenguaje de programación.
FastAPI trabaja naturalmente con JSON: todo lo que retorna un endpoint (diccionarios, listas, etc.) se convierte automáticamente a este formato.
Visual Studio Code
Será el editor principal del proyecto.
Se utilizará con extensiones que facilitan el desarrollo en Python, como:
- Python (Microsoft)
- Pylance
- Black Formatter
- Jupyter (opcional, para pruebas rápidas)
VS Code permite integrar el entorno virtual (.venv), ejecutar la app desde la terminal y mantener una estructura limpia y modular del proyecto.
Git y GitHub
Estas herramientas permitirán el control de versiones y el respaldo del código.
Git se usa localmente para registrar los cambios.
GitHub permite alojar el repositorio del proyecto y conectarlo con Vercel para el despliegue final.
Vercel
Será la plataforma usada para desplegar la API una vez terminada.
Vercel ofrece integración directa con GitHub, permitiendo desplegar el proyecto automáticamente cada vez que se realice un push.
Ventajas:
- Configuración mínima.
- Certificados HTTPS automáticos.
- URLs instantáneas para compartir y probar.