181 lines
5.2 KiB
Markdown
181 lines
5.2 KiB
Markdown
# 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 мм Цвет: оранжево-коричневый",
|
||
}
|
||
]
|
||
```
|