API информационной системы управления гостиницей. Мультиарендность: изоляция
данных по tenant_id на уровне приложения, идентификатор арендатора
берётся из сессии и подставляется в запросы автоматически.
FastAPI · Dishka (внедрение зависимостей) · asyncpg (raw SQL, без ORM) · Pydantic v2 · PostgreSQL. Управление зависимостями — uv.
app/internal/routes— HTTP-слой (тонкий, без бизнес-логики).app/internal/services— бизнес-логика.app/internal/repository— доступ к данным (SQL).app/pkg/models— модели, перечисления, исключения.app/configuration— DI-контейнер, жизненный цикл, сервер.migrations— последовательные SQL-миграции (0001…, 19 шагов).
cp .env.example .env
uv sync
uv run python -m appВесь стек (postgres, миграции, backend, mailer, nginx) поднимается из infra/:
docker compose -f ../infra/docker-compose.yml up --buildLiveness — GET /health, readiness — GET /health/ready (проверка пула БД).
Документация API доступна при SERVER__DOCS_ENABLED=true.
uv run ruff check . && uv run black --check . && uv run mypy app && uv run pytest -q