Высокопроизводительный микросервис корзины покупок для e-commerce
На основе асинхронной архитектуры FastAPI + SQLAlchemy 2.0, поддержка полного жизненного цикла корзины
English | 中文 | Русский | 한국어 | 日本語
- Журнал разработки: Agent&Chat.md
- 🛒 Управление корзиной - Создание, просмотр, очистка корзин
- 📦 Операции с товарами - Добавление, обновление количества, удаление товаров
- 🔄 Слияние корзин - Поддержка слияния анонимной корзины с пользовательской
- ⚡ Асинхронная архитектура - Высокопроизводительный дизайн на async/await
- 📊 Снимок цены - Сохранение цены товара на момент добавления
| Технология | Версия | Назначение |
|---|---|---|
| Python | 3.10+ | Среда выполнения |
| FastAPI | 0.109+ | Высокопроизводительный асинхронный веб-фреймворк |
| PostgreSQL | 15+ | Реляционная база данных |
| SQLAlchemy | 2.0+ | Асинхронный ORM |
| Pydantic | v2 | Валидация данных |
| Alembic | 1.13+ | Миграция базы данных |
cart-service/
├── app/
│ ├── api/v1/endpoints/ # API маршруты
│ ├── core/ # Управление конфигурацией
│ ├── db/ # Подключение к БД
│ ├── models/ # ORM модели
│ ├── schemas/ # Pydantic модели
│ ├── services/ # Бизнес-логика
│ └── main.py # Точка входа
├── alembic/ # Скрипты миграции БД
├── .env.example # Шаблон переменных окружения
├── alembic.ini # Конфигурация Alembic
└── requirements.txt # Зависимости
cd projects/cart-service
pip install -r requirements.txtСоздайте базу данных PostgreSQL:
CREATE DATABASE cart_db;Настройте переменные окружения:
copy .env.example .env
# Отредактируйте файл .env и установите правильные параметры подключения к БДalembic upgrade headuvicorn app.main:app --reload- Swagger документация: http://127.0.0.1:8000/docs
- ReDoc документация: http://127.0.0.1:8000/redoc
- Проверка состояния: http://127.0.0.1:8000/health
| Метод | Путь | Описание |
|---|---|---|
| GET | /api/v1/carts/{cart_id} |
Получение деталей корзины |
| POST | /api/v1/carts |
Создание корзины |
| POST | /api/v1/carts/{cart_id}/items |
Добавление товара |
| PATCH | /api/v1/carts/{cart_id}/items/{item_id} |
Обновление количества |
| DELETE | /api/v1/carts/{cart_id}/items/{item_id} |
Удаление товара |
| DELETE | /api/v1/carts/{cart_id} |
Очистка корзины |
| POST | /api/v1/carts/{cart_id}/merge |
Слияние корзин |
| Поле | Тип | Описание |
|---|---|---|
| id | UUID | Первичный ключ |
| user_id | UUID | ID пользователя (может быть null) |
| status | VARCHAR | Статус |
| created_at | DATETIME | Время создания |
| updated_at | DATETIME | Время обновления |
| Поле | Тип | Описание |
|---|---|---|
| id | UUID | Первичный ключ |
| cart_id | UUID | ID корзины |
| product_id | VARCHAR | SKU товара |
| quantity | INTEGER | Количество |
| unit_price | DECIMAL | Цена за единицу |
| added_at | DATETIME | Время добавления |
- Руководство разработки AI Agent - Ограничения технологического стека и стандарты разработки
Этот проект лицензирован под MIT License.
Made with ❤️ using Python and FastAPI