# API ## Категории ### Получение всех категорий **Запрос:** `GET /api/categories` **Получаю:** ```json [ { "id": 1, "name": "для внутренней канализации", "image": "/images/hghfghgd.jpg", "atributes": [ { "id": 1, "name": "цвет", "vals": [ { "id": 1001, "val": "оранжевый" }, { "id": 1002, "val": "серый" }, ] }, { "id": 2, "name": "размер", "vals": [ { "id": 2001, "val": "..." }, { "id": 2002, "val": "...." }, { "id": 2003, "val": "...." } ] }, { "id": 2, "name": "кол-во в упаковке", "vals": [ { "id": 2001, "val": "2" }, { "id": 2002, "val": "4" }, ] } ] }, { "id": 1, "name": "для внешней канализации", "image": "/images/sfjsjsjf.jpg", "atributes": [ { "id": 1, "name": "цвет", "vals": [ { "id": 1001, "val": "оранжевый" }, { "id": 1002, "val": "серый" }, ] }, { "id": 2, "name": "размер", "vals": [ { "id": 2001, "val": "..." }, { "id": 2002, "val": "...." }, { "id": 2003, "val": "...." } ] }, { "id": 2, "name": "кол-во в упаковке", "vals": [ { "id": 2001, "val": "2" }, { "id": 2002, "val": "4" }, ] } ] } ] ``` ## Товары (Products) ### Получение товаров по id категории с фильтрацией **Запрос:** `GET /products` **Параметры запроса (Query Parameters):** | Параметр | Тип | Обязательный | Описание | Пример | |----------|-----|--------------|----------|---------| | `categoryId` | number | Да | ID категории | `categoryId=1` | | `page` | number | Нет | Номер страницы (по умолчанию 1) | `page=2` | | `limit` | number | Нет | Количество товаров на странице (по умолчанию 9) | `limit=12` | | `filters` | object | Нет | Фильтры по атрибутам | `size=110х2,2х500&color=оранжевый` | **Примеры запросов:** 1. **Базовый запрос:** ``` GET /products?categoryId=1&page=1&limit=9 ``` 2. **С фильтрами (одиночные значения):** ``` GET /products?categoryId=1&page=1&limit=9&size=110х2,2х500&color=оранжевый ``` 3. **С фильтрами (массив значений):** ``` GET /products?categoryId=1&page=1&limit=9&size=110х2,2х500,110х2,2х1500&color=серый ``` **Получаю:** ```json { "items": [ { "id": 101, "name": "Труба ПВХ", "description": "бля бля", "categoryId": 1, "images": ["/images/s23-1.jpg", "/images/s23-2.jpg"], "attributes": { "color": "серый", "amount": "4", "size": "110х2,2х500" }, "inStock": true, } ], "total": 45, "page": 1, "limit": 9 } ``` ### Получение товаров по id **Запрос:** `GET/product/fetchById` **Параметры запроса:** - `id` (path parameter) - уникальный идентификатор товара **Пример запроса:** ``` GET /api/products/101 ``` **Получаю:** ```json { "id": 101, "name": "ПВХ труба", "description": "бля бля", "categoryId": 1, "images": [ "/images/s23-1.jpg", "/images/s23-2.jpg", "/images/s23-3.jpg" ] } ``` ### Получение списка товаров **Запрос** ``` GET api/productList/ ``` **получаю** ```json [ { "id": 1, "full_name": "Труба ПВХ для НАРУЖНОЙ канализации (цвет оранжево-коричневый), со сплошной стенкой 110x2.3x1000", "description": "Труба ПВХ для НАРУЖНОЙ канализации (цвет оранжево-коричневый), со сплошной стенкой 110x2.3x1000 Труба ПВХ для наружная канализации, Диаметр: 110мм, Толщина стенки: 2.3мм, Длина: 1000мм Тип применения: наружная канализация Размеры: 110x2.3x1000 мм Цвет: оранжево-коричневый", }, { "id": 1, "full_name": "Труба ПВХ для НАРУЖНОЙ канализации (цвет оранжево-коричневый), со сплошной стенкой 110x2.3x1000", "description": "Труба ПВХ для НАРУЖНОЙ канализации (цвет оранжево-коричневый), со сплошной стенкой 110x2.3x1000 Труба ПВХ для наружная канализации, Диаметр: 110мм, Толщина стенки: 2.3мм, Длина: 1000мм Тип применения: наружная канализация Размеры: 110x2.3x1000 мм Цвет: оранжево-коричневый", } ] ```