Skip to content

REST API для интернет-магазина, позволяющее управлять пользователями, товарами и заказами. Сервис поддерживает регистрацию и авторизацию пользователей, CRUD-операции с товарами и заказами, а также предоставляет документацию API для интеграции с клиентскими приложениями.

Notifications You must be signed in to change notification settings

MaksimIgnatov/ShopAPI

Repository files navigation

ShopAPI

REST API для интернет-магазина, позволяющее управлять пользователями, товарами и заказами.

Описание

ShopAPI - это полнофункциональный REST API для интернет-магазина, построенный на Django и Django REST Framework. Сервис поддерживает регистрацию и авторизацию пользователей, CRUD-операции с товарами и заказами, а также предоставляет автоматическую документацию API.

Функционал

  • Управление пользователями: регистрация, авторизация, профиль пользователя
  • Управление товарами: CRUD операции, категории, изображения, отзывы
  • Управление заказами: оформление заказов, корзина покупок, отслеживание статуса
  • Поиск и фильтрация: поиск товаров, фильтрация по категориям и цене
  • JWT авторизация: безопасная аутентификация с JWT токенами
  • API документация: автоматическая генерация Swagger/OpenAPI документации

Технологический стек

  • Python 3.12
  • Django 4.2.7 - веб-фреймворк
  • Django REST Framework 3.14.0 - для создания API
  • PostgreSQL - база данных
  • Docker & Docker Compose - контейнеризация
  • JWT - авторизация
  • Swagger/OpenAPI - документация API

Установка и запуск

Локальная разработка

  1. Клонируйте репозиторий:
git clone <repository-url>
cd shopapi
  1. Создайте виртуальное окружение:
python -m venv venv
source venv/Scripts/activate  # Windows
# или
source venv/bin/activate      # Linux/Mac
  1. Установите зависимости:
pip install -r requirements.txt
  1. Создайте файл .env на основе .env.example:
cp .env.example .env
  1. Настройте базу данных PostgreSQL и обновите настройки в .env

  2. Выполните миграции:

python manage.py migrate
  1. Создайте суперпользователя:
python manage.py createsuperuser
  1. Запустите сервер:
python manage.py runserver

Docker

  1. Запустите проект с помощью Docker Compose:
docker-compose up --build

API Endpoints

Аутентификация

  • POST /api/auth/register/ - Регистрация пользователя
  • POST /api/auth/login/ - Вход в систему
  • POST /api/auth/logout/ - Выход из системы
  • GET /api/auth/profile/ - Получение профиля пользователя
  • PUT /api/auth/update/ - Обновление данных пользователя
  • POST /api/auth/change-password/ - Смена пароля

Товары

  • GET /api/products/categories/ - Список категорий
  • GET /api/products/products/ - Список товаров
  • GET /api/products/products/{id}/ - Детальная информация о товаре
  • GET /api/products/products/search/ - Поиск товаров
  • POST /api/products/products/create/ - Создание товара (админ)
  • PUT /api/products/products/{id}/update/ - Обновление товара (админ)
  • DELETE /api/products/products/{id}/delete/ - Удаление товара (админ)

Отзывы

  • GET /api/products/products/{product_id}/reviews/ - Список отзывов товара
  • POST /api/products/products/{product_id}/reviews/create/ - Создание отзыва

Заказы

  • GET /api/orders/orders/ - Список заказов пользователя
  • GET /api/orders/orders/{id}/ - Детальная информация о заказе
  • POST /api/orders/orders/create/ - Создание заказа
  • POST /api/orders/orders/create-from-cart/ - Создание заказа из корзины

Корзина

  • GET /api/orders/cart/ - Получение корзины
  • POST /api/orders/cart/add/ - Добавление товара в корзину
  • PUT /api/orders/cart/items/{item_id}/update/ - Обновление количества товара
  • DELETE /api/orders/cart/items/{item_id}/remove/ - Удаление товара из корзины
  • DELETE /api/orders/cart/clear/ - Очистка корзины

Документация API

После запуска сервера документация API доступна по адресам:

  • Swagger UI: http://localhost:8000/api/docs/
  • ReDoc: http://localhost:8000/api/redoc/
  • OpenAPI Schema: http://localhost:8000/api/schema/

Административная панель

Административная панель Django доступна по адресу http://localhost:8000/admin/

Структура проекта

shopapi/
├── accounts/          # Управление пользователями
├── products/          # Управление товарами
├── orders/           # Управление заказами и корзиной
├── shopapi/          # Основные настройки Django
├── docs/             # Документация
├── media/            # Медиа файлы
├── staticfiles/      # Статические файлы
├── requirements.txt  # Python зависимости
├── Dockerfile        # Docker конфигурация
├── docker-compose.yml # Docker Compose конфигурация
└── .env.example      # Пример переменных окружения

Переменные окружения

Создайте файл .env на основе .env.example:

DEBUG=True
SECRET_KEY=your-secret-key-here
DB_NAME=shopapi
DB_USER=postgres
DB_PASSWORD=postgres
DB_HOST=localhost
DB_PORT=5432
ALLOWED_HOSTS=localhost,127.0.0.1,0.0.0.0
CORS_ALLOWED_ORIGINS=http://localhost:3000,http://127.0.0.1:3000

Лицензия

MIT License

About

REST API для интернет-магазина, позволяющее управлять пользователями, товарами и заказами. Сервис поддерживает регистрацию и авторизацию пользователей, CRUD-операции с товарами и заказами, а также предоставляет документацию API для интеграции с клиентскими приложениями.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published