4.4 KiB
4.4 KiB
Документация бэкенда интернет-магазина одежды
Содержание
- API документация - Подробное описание всех API эндпоинтов
- API заказов - Подробное описание API заказов
- Структура базы данных - Описание таблиц и связей в базе данных
Технологический стек
- Язык программирования: Python 3.10+
- Фреймворк: FastAPI
- ORM: SQLAlchemy 2.0
- База данных: PostgreSQL
- Аутентификация: JWT (JSON Web Tokens)
Архитектура приложения
Приложение построено по принципу многослойной архитектуры:
- Роутеры (Routers) - Обрабатывают HTTP-запросы и ответы
- Сервисы (Services) - Содержат бизнес-логику приложения
- Репозитории (Repositories) - Отвечают за взаимодействие с базой данных
- Модели (Models) - Описывают структуру таблиц базы данных
- Схемы (Schemas) - Описывают структуру данных для API (Pydantic модели)
Структура проекта
backend/
├── app/
│ ├── __init__.py
│ ├── main.py # Точка входа в приложение
│ ├── config.py # Конфигурация приложения
│ ├── core.py # Основные функции и зависимости
│ ├── models/ # SQLAlchemy модели
│ │ ├── __init__.py
│ │ ├── user_models.py
│ │ ├── catalog_models.py
│ │ ├── order_models.py
│ │ ├── review_models.py
│ │ └── content_models.py
│ ├── schemas/ # Pydantic схемы
│ │ ├── __init__.py
│ │ ├── user_schemas.py
│ │ ├── catalog_schemas.py
│ │ ├── order_schemas.py
│ │ ├── review_schemas.py
│ │ └── content_schemas.py
│ ├── repositories/ # Репозитории для работы с БД
│ │ ├── __init__.py
│ │ ├── user_repo.py
│ │ ├── catalog_repo.py
│ │ ├── order_repo.py
│ │ ├── review_repo.py
│ │ └── content_repo.py
│ ├── services/ # Бизнес-логика
│ │ ├── __init__.py
│ │ ├── user_service.py
│ │ ├── catalog_service.py
│ │ ├── order_service.py
│ │ ├── review_service.py
│ │ └── content_service.py
│ └── routers/ # API эндпоинты
│ ├── __init__.py
│ ├── auth_router.py
│ ├── user_router.py
│ ├── catalog_router.py
│ ├── cart_router.py
│ ├── order_router.py
│ ├── review_router.py
│ ├── content_router.py
│ └── analytics_router.py
├── alembic/ # Миграции базы данных
├── tests/ # Тесты
└── docs/ # Документация
├── README.md
├── api_documentation.md
└── database_structure.md
Запуск приложения
Установка зависимостей
pip install -r requirements.txt
Настройка переменных окружения
Создайте файл .env в корне проекта со следующими переменными:
DATABASE_URL=postgresql://user:password@localhost:5432/db_name
SECRET_KEY=your_secret_key
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30
Запуск сервера разработки
uvicorn app.main:app --reload
Запуск миграций
alembic upgrade head
Документация API
После запуска приложения, документация API доступна по адресу:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc