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([]);
                    }
                };
                
Документация API