mirror of
https://github.com/magnum-opus-tender-hack/backend.git
synced 2024-11-25 10:43:44 +03:00
3.5 KiB
3.5 KiB
Tender Hack backend
Серверная часть приложения по умному поиску товаров
Запуск
$ python3 -m venv venv && source venv/bin/activate
$ pip install -r requirements/base.txt
$ ./app/manage.py makemigrations && ./app/manage.py migrate
$ ./app/manage.py loaddata products.json # не возможно положить в git репозиторий
$ ./app/manage.py runserver
Описание фильтров для API
фильтры можно применять в неограниченным количеством списком в запросе
Запрос по всем полям
так же поддерживается поиск по числовым характеристикам, например: размер 100
{
"value": "любая строчка, в том числе с ошибками",
"type": "All"
}
Запрос по имени продукта
{
"value": "часть имени товара, в любой раскладке, с ошибками и т д",
"type": "Name"
}
Запрос категории продуктов
{
"value": "часть имени категории, с ошибками и т д",
"type": "Category"
}
Запрос по имени характеристики
{
"value": "часть значения характеристики, с ошибками и т д",
"type": "Characteristic"
}
Запрос по имени и значению характеристики
{
"value": "значение характеристики",
"type": "часть названия характеристики"
}
Фильтрация по значению цифровой характеристики
операторы: = >= <= < >, так же поддерживается ранжированные значения
{
"value": ">=100",
"type": "*Размер"
}
Множественное применение фильтров
Search API позволяет получить общие объекты среди разных фильтров, например черные каучуковые сапоги
При использовании одной и той же характеристики значения этих характеристик объединяются
Так же присутствует пагинация результата
{
"body": [
{
"value": "сапАги",
"type": "Name"
},
{
"value": "каучук",
"type": "Материал"
},
{
"value": "синий",
"type": "Цвет"
},
{
"value": "черный",
"type": "Цвет"
}
],
"limit": 5,
"offset": 0
}