API Документация
Описание доступных методов и примеров запросов к нашему серверу
Регистрация пользователя
POST /api/auth/login
Описание:
Контроллер принимает методом POST данные о логине и пароле пользователя,
- проверяет по базе данных наличие данного пользователя
- если такой пользователь существует, отправляет соответствующее собщение
- если нет, создает нового пользователя
- {
- email (string) — Email пользователя
- password (string) — Пароль
- }
Пример запроса:
POST /api/auth/login HTTP/1.1
Host: yourserver.com
Content-Type: application/json
{
"email": "user@example.com",
"password": "123456"
}
Товары
GET /api/products
Параметры:
- category (optional) — Фильтрация по категории
- limit (optional) — Лимит результатов
Пример запроса:
GET /api/products?category=electronics&limit=10 HTTP/1.1
Host: yourserver.com
Заказы
POST /api/orders
Параметры:
- user_id (integer) — ID пользователя
- items (array) — Список товаров
Пример запроса:
POST /api/orders HTTP/1.1
Host: yourserver.com
Content-Type: application/json
{
"user_id": 12,
"items": [
{ "product_id": 5, "quantity": 2 },
{ "product_id": 8, "quantity": 1 }
]
}
Поиск товара по артикулу:
GET /api/SearchArticle/{article}
Параметры:
Контроллер обрабатывает GET-запросы, принимая параметр article для выполнения поиска соответствий в базе данных.Алгоритм работы:
Получает параметр article из строки запроса. Выполняет запрос к базе данных, осуществляя поиск записей, в которых поле артикул (article) частично или полностью соответствует переданному значению. При нахождении совпадений формирует JSON-ответ. Ответ содержит нашему более 20 записей
Формат ответа:
[
{
"id": "key",
"guidId" : "уникальный идентификатор товара",
"vendorCode": "артикул товара",
"name": "наименование товара",
"price": "стоимость",
"quantity": "наличие на складе",
"basketImgPath" : "картинка для строки выдачи результата"
},
...
]
Пример запроса:
// Реальный поиск
const handleInputChange = async (e) => {
const value = e.target.value;
setSearchTerm(value);
if (value.trim() !== "") {
try {
const response = await fetch(`${ApiUrl}/api/SearchArticle/${value}`);
if (response.ok) {
const data = await response.json();
setSearchResults(data);
} else {
console.error("Ошибка при получении данных поиска");
setSearchResults([]);
}
} catch (error) {
console.error("Ошибка сети:", error);
setSearchResults([]);
}
} else {
setSearchResults([]);
}
};
Выборка товаров по группе (каталогу):
GET /api/CatalogSectionSearchItem/{chapter}
Параметры:
Контроллер обрабатывает GET-запросы, принимая параметрchapter для выполнения выборки товаров, принадлежащих указанной группе (каталогу).Алгоритм работы:
Получает параметр
chapter из строки запроса.Выполняет запрос к базе данных, осуществляя фильтрацию записей, в которых поле
Chapter соответствует переданному значению.При нахождении совпадений формирует JSON-ответ.
Ответ содержит все найденные записи, соответствующие заданной группе.
Формат ответа:
[
{
"id": "key",
"guidId": "уникальный идентификатор товара",
"vendorCode": "артикул товара",
"name": "наименование товара",
"price": "стоимость",
"quantity": "наличие на складе",
"basketImgPath": "картинка для строки выдачи результата"
},
...
]
Пример запроса:
// Выборка товаров по каталогу
const fetchGoodsByChapter = async (chapter) => {
try {
const response = await fetch(`${ApiUrl}/api/CatalogSectionSearchItem/${chapter}`);
if (response.ok) {
const data = await response.json();
setCatalogItems(data);
} else {
console.error("Ошибка при получении данных каталога");
setCatalogItems([]);
}
} catch (error) {
console.error("Ошибка сети:", error);
setCatalogItems([]);
}
};