md с api, подправил запросы
This commit is contained in:
1 parent
cee1ed8bb7
commit
5451970f02
3 files changed
+157
-9
No files matched your search
+148
-7
@@ -1,17 +1,158 @@
|
||||
# React + TypeScript + Vite
|
||||
# API
|
||||
|
||||
## fetchCategories:
|
||||
## Категории
|
||||
|
||||
* get запрос по /api/categories
|
||||
### Получение всех категорий
|
||||
**Запрос:** `GET /api/categories`
|
||||
|
||||
* возвращает массив объектов типа Category
|
||||
**Получаю:**
|
||||
```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)
|
||||
|
||||
## fetchProductsByCategory
|
||||
### Получение товаров по id категории с фильтрацией
|
||||
**Запрос:** `GET /products`
|
||||
|
||||
* параметры: categoryId, page = 1, limit = 9, filters: string | number | (string | number)[]
|
||||
**Параметры запроса (Query Parameters):**
|
||||
|
||||
* ожидаю: { items: Product[], total: number, page: number, limit: number } Сериализация превратит это в query-параметры
|
||||
| Параметр | Тип | Обязательный | Описание | Пример |
|
||||
|----------|-----|--------------|----------|---------|
|
||||
| `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"
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user