1. Общее описание
Необходимо разработать REST API сервер для интернет-магазина, который будет взаимодействовать с БД и обеспечивать работу фронтенда на Next.js.
API должно быть документировано с помощью Swagger, поддерживать JWT-аутентификацию, корректную обработку ошибок и валидацию данных.
Категории товаров (Categories)
Получение списка (включая вложенные категории)
CRUD (админ/посетитель)
Фильтрация, сортировка, пагинация
Поиск по названию/описанию
Корзина (Cart)
Добавление/удаление товаров
Получение текущей корзины
Очистка корзины
Заказы (Orders)
Создание заказа (из корзины)
3. Особенности взаимодействия с фронтендом (Next.js)
CORS: Настроить корректные заголовки для Next.js
Сессии: Использовать необходимые куки для приоритета SSR
Ошибки: Четкая структура (HTTP-коды + { error: string, details? })
4. Документация (Swagger)
Полное описание всех эндпоинтов
Описание моделей (DTO)
Авторизация в Swagger UI
5. Дополнительные требования
Логирование: Запись ошибок и важных действий
Валидация: Проверка входящих данных (body, query, params)
Оптимизация: Кэширование Redis (опционально)
Безопасность: Защита от SQL-инъекций
Ограничение запросов (rate-limiting)
Хеширование паролей (bcrypt)
6. Этапы сдачи
Проектирование API (Swagger-схема)
Реализация базовых модулей (Auth, Users, Products)
Добавление корзины и заказов