Codice completo dell'articolo "Repository Pattern in FastAPI: Quando e Perche Usarlo" pubblicato su layerbylayer.dev.
git clone https://github.com/layerbylayer-blog/fastapi-repository-pattern
cd fastapi-repository-pattern
cp .env.example .env
# edit .env with your values
docker-compose up -d
pip install -r requirements.txt
uvicorn app.main:app --reloadapp/repositories/base_repository.py— BaseRepository generico con operazioni CRUDapp/repositories/story_repository.py— StoryRepository con query specificheapp/repositories/user_repository.py— UserRepository con update statsapp/services/story_service.py— StoryService con business logic e calcolo emotional scoreapp/dependencies.py— Dependency injection FastAPIapp/routers/stories.py— Router pulito che delega al serviceapp/models.py— Modelli SQLAlchemy (Story, User)app/schemas.py— Schemi Pydantictests/test_story_service.py— Test con mock (zero database)
Router → Service (business logic) → Repository (SQL) → Database