Closed joseangel092004 closed 2 months ago
Para el desarrollo del backend de nuestro proyecto de DreamTrip, haremos el uso de FastAPI debido a su alto rendimiento y capacidad para manejar solicitudes concurrentes, lo cual es crucial para funciones intensivas en IN/OUT como la integración con APIs de proveedores de vuelos y el motor de recomendaciones basado en algoritmos de aprendizaje automático. Además, FastAPI ofrece validación automática de datos y generación de documentación interactiva, lo que facilitará el desarrollo rápido y seguro de funcionalidades como el registro y autenticación de usuarios, perfiles personalizables, creación y edición de itinerarios, y el foro comunitario. Esto lo hace ideal para un proyecto con múltiples componentes interactivos y requisitos de alta eficiencia y escalabilidad como el de nuestro proyecto DreamTrip.
Para crear el backend para de nuestro proyecto DreamTrip usando FastAPI, aplicaremos los siguientes procedimientos:
Primero, instalaremos FastAPI y Uvicorn con pip install fastapi uvicorn. Luego, organizaremos nuestro proyecto con una estructura de archivos que incluya main.py, models.py, schemas.py, crud.py, y database.py. En models.py, definiremos los modelos de datos con SQLAlchemy, como Destination, User, y Reservation, que representarán destinos, usuarios y reservas en la base de datos. Luego, crearemos esquemas en schemas.py usando Pydantic para validar los datos que envían y reciben los usuarios, como DestinationCreate, UserCreate, y ReservationCreate. Luego, implementaremos las funciones CRUD en crud.py para manejar operaciones de la base de datos, como create_destination, get_destination, create_user, y create_reservation. Después, configuraremos la base de datos en database.py definiendo la URL de conexión y creando el motor y la sesión de SQLAlchemy. Finalmente, en main.py, definiremos los endpoints de la API, como /destinations/, /users/, y /reservations/, utilizando FastAPI para manejar solicitudes HTTP y acceder a la base de datos mediante las funciones CRUD para ejecutar el servidor de desarrollo con uvicorn app.main:app --reload para poner en marcha la API y probar su funcionalidad.
adelante
por otro lado, estoy usando esta api que es un poco mas flexible en cuanto a su uso gratuito para ir comenzando con los servicios que necesitaremos para nuestro codigo.
primero tenemos nuestro token para llamar a la api
Definir el uso de Flastapi o Flask y por qué?