Поиск товара по критерию - kramarov-evg/smart-design GitHub Wiki

Формат запроса

Endpoint Метод Тип данных запроса Тип данных ответа
/products/search POST JSON JSON

Структура тела запроса

{
    "name": {
        "method": <имя метода соответствия>,
        "pattern": <критерий поиска>
    },
    <имя параметра>: {
        "method": <имя метода соответствия>,
        "pattern": <критерий поиска>
    },
    <имя параметра>: {
        "method": <имя метода соответствия>,
        "pattern": <критерий поиска>
    },
    ...
}

Описание полей

Все поля являются необязательными. Все поля являются объектами со следующими полями:

  • "method" - Обязательное поле. Строка. Варианты значений:
    • 'exact': Для строковых значений. Точное соответствие поля переданной в "pattern" строке.
    • 'startsWith': Для строковых значений. Искомая строка должна начинаться с "pattern".
    • 'endsWith': Для строковых значений. Искомая строка должна оканчиваться на "pattern".
    • 'contains': Для строковых значений. Искомая строка должна содержать "pattern".
    • 'equal': Для числовых значений. Искомый параметр должен равняться "pattern".
    • 'greaterThan': Для числовых значений. Искомый параметр должен быть больше "pattern".
    • 'lessThan': Для числовых значений. Искомый параметр должен быть меньше "pattern".
    • 'greaterEqual': Для числовых значений. Искомый параметр должен быть не меньше "pattern".
    • 'lessEqual': Для числовых значений. Искомый параметр должен быть не больше "pattern".
    • 'notEqual': Для числовых значений. Искомый параметр должен быть не равен "pattern".
  • "pattern" - Обязательное поле. Строка или число. Значение, которое будет искаться с помощью "method"

Стурктура тела ответа

Ответом на запрос является либо список товаров, удовлетворяющих условиям поиска (пустой в случае отсутствия таковых), либо JSON с информацией об ошибке.

[
    {
        "_id": {
            "$oid": <id найденного товара>
        }
        "name": <имя товара>,
        "description": <описание товара>
        "params": {
            "param1": <значение первого параметра>,
            "param2": <значение второго параметра>,
            ...
        }
    },
    {
        "_id": {
            "$oid": <id найденного товара>
        }
        "name": <имя товара>,
        "description": <описание товара>
        "params": {
            "param1": <значение первого параметра>,
            "param2": <значение второго параметра>,
            ...
        }
    },
    ...
]

Описание полей

  • "_id" - Обязательное поле. Объект

Объект, единственный полем которого является "$oid". Это поле содержит id добавленного товара

  • "name" - Обязательное поле. Строка.

Имя товара.

  • "description" - Обязательное поле. Строка.

Описание товара.

  • "params" - Необязательное поле. Объект.

Дополнительные параметры товара. Каждое поле объекта - пара ключ-значение: имя параметра и его значение. Имена параметров - строки. Значения параметров не имеют ограничений типов. Возвращается только в том случае, если присутствует в базе

⚠️ **GitHub.com Fallback** ⚠️