Este proyecto contiene un ejemplo de la estructura recomendada para nuevos proyectos que utilicen FastAPI en el backend.
Se sugiere mantener la estructura de archivos (basada en fastapi-best-practices), adaptándola al dominio que corresponda. Esto es, creando nuevos módulos que contengan mínimamente los siguientes elementos:
constants.pyexceptions.pymodels.pyrouter.pyschemas.pyservices.py
Si se lo desea, añadir tests para dichos módulos debiera seguir la misma estructura que los disponibles en la carpeta tests, con las adaptaciones que se consideren necesarias.
- Instalar dependencias dentro de un entorno virtual con:
pip install -r requirements.txt - Crea una copia del archivo
.env.templatecon el nombre.envy reemplaza los valores de las variables de entorno que creas necesarias. - Asumiendo que estamos en la raiz del repositorio y nuestro código dentro de
src/, iniciar el proyecto ejecutando:fastapi dev src/main.py - Cuando el proyecto esté listo, abrir http://localhost:8000/docs para probar la API de manera interactiva.
Opcionalmente:
- Asumiendo que estamos en la raíz del repositorio, ejecutar los tests con:
python -m pytest tests/
- Descargate una copia de este proyecto.
- Abrelo y copia los archivos a la carpeta de tu nuevo proyecto.
- Verifica que puedes ejecutar el proyecto tal como está. Ver sección: ¿Cómo lo ejecuto?
- Ya puedes comenzar a trabajar en tu proyecto.
Importante:
- Evitar copiar el directorio
.git/proveniente del repositorio original. Tu repositorio tiene su propio directorio.git/. - Al trabajar en nuevos dominios, los módulos y archivos de ejemplo (personas, mascotas) ya no son necesarios y pueden ser eliminados junto con cualquier referencia a ellos dentro de
src/ytests/. - Por defecto el proyecto utiliza el motor de base de datos
sqlitepor lo que los datos de la app vivirán dentro del archivo cuyo nombre está definido en el archivo.env(por ejemplo:mi-db-sqlite.db) a menos que se renombre y/o se decida utilizar otro motor de base de datos. - Los tests han sido configurados para ejecutarse utilizando una base de datos en memoria por lo que no existe un archivo que contenga sus datos. Estos tests están relacionados al dominio personas/mascotas por lo que si borras los módulos, es probable que dejen de funcionar.