Данный раздел содержит информацию по описанию сервиса.
Руководство по запуску проекта TODO.md.
Документация API 127.0.0.1:8000/api/v1/docs
Представляет API-сервис для поддержки функционала интернет-магазина. Содержит три части: авторизация пользователя, каталог товаров (витрина), корзина покупок.
Полнофункциональный, безопасный и масштабируемый API-сервис с модульной архитектурой, готовый к расширению и интеграции в e-commerce проекты.
- FastAPI asinc
- PostgreSQL
- SQLAlchemy
- Аутентификация JWT
- Валидация Pydentic
- Контейнеризация Docker и Docker compose
backend
app
core
models
... описание моделей и работа с БД
shopcase
... модуль каталога товаров
users
... модуль авторизации
authorization.py Аутантификация пользователя
tests
... тесты
config.py
main.py
.env
...
docker-compose.yaml
Dockerfile
start
README.md
TODO.md
---User---
+-- id
| full_name: str
| email: str
| phone: str
| password: str
| disabled: bool
| roles: str
|
| ---Cart---
| id
+-< user_id: int
price: int
quantity: int
+-< product_id: int
|
|
| ---ProductShop---
+-- id
name: str
description: str
price: int
quantity: int
created_at: datetime
updated_at: datetime
is_active: bool
Модуль Users app/users Обеспечивает регистрацию пользователей, аутентификацию пользователя и выдачу JWT, авторизацию и методы работы с моделью Users. Регистрация пользователя. Принимает запрос с параметрами согластно api/v1/docs
Проверки:
- Уникальность полей email и phone
- Валидность полей проверяется Pydentic согластно схеме
- Валидность пароля проверяется регулярным выражнием
- Email и телефон — уникальныея Создает модель User в БД
Аутентификация по email или телефону + пароль Принимает запрос с параметрами согластно api/v1/docs Идентифицирует пользователя и выдает ему JWT доступа и рефреш JWT время действия указываются в .env
Идентифицированный по jwt доступа пользователь авторизируется согластно его роли
-
• CRUD-операции доступны только администраторам • Для обычных пользователей — только просмотр активных товаров и количество которых больше 0
-
Поддержка добавления, удаления и очистки товаров в корзине