feat(): Added ci restruct project and add dockerfile

This commit is contained in:
Black_Raven committed 2026-03-30 12:28:11 +03:00
1 parent 5451970f02
commit 8aa8e04077
70 files changed
+81 -11

No files matched your search

+158
View File
@@ -0,0 +1,158 @@
# 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": "бля бля",
"price": 799,
"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": "бля бля",
"price": 799,
"categoryId": 1,
"images": [
"/images/s23-1.jpg",
"/images/s23-2.jpg",
"/images/s23-3.jpg"
]
}