examples | ||
README.md |
Дополнительный формат API (первичный черновик)
Все запросы передаются методом POST
Все структуры строго типизированы, т.е. надо следить за типа данных, числа передаются без кавычек, строки в кавычках.
Используемые коды:
- 200 - Выполнено успешно
- 206 - Частично выполнено (не завершено, например, генерирование отчета)
- 202 - Заявка принята
- 400 - Не правильно оформлен запрос
- 403 - Доступ запрещен, не верный токен
- 404 - Не найдено, например пользователь или сборка
- 502 - Внутрення ошибка (расшифровка в поле message в теле ответа)
Используемые сущности
- matcher - (сборка) совокупность сайтов и исходных записей для сбора информации. Аналог группы.
- watchers - сайты, загруженные файлы поставщиков и/или конкурентов, метаформулы для вычисления результатов
- records - исходные данные для сбора информации
- rules - Правила сбора информации. Алиасы для брендов, логин пароль для авторизации на сайте и т.п
Для поддержки сжатия в ответе, при запросе используйте заголовок Accept-Encoding: "gzip" в соостветсии со стандартом
Пример полного url: https://ncrawler.com/api/matcher/status?token=XXXXXX
Создание сборки
endpoint: api/matcher/create?token=XXXXXXXXXXX
REQUEST: (более полный пример в файле examples/create.json)
{
"title" : "Произвольное название сборки",
"watchers" : [
{
"type" : "site",
"sld" : "emex.ru",
"city" : "москва"
}
],
"records" : [
{
"sku": "13273",
"vcode": "C-10",
"brand": "HKT",
"model": "C-10",
"tags": ["да"]
},
{
"sku": "9733",
"vcode": "P102",
"brand": "TAMA",
"model": "P102",
"tags": ["да"]
}
]
}
RESPONSE:
{
"message" : "Описание ошибки если есть",
"matcher_id" : 10 // Идентификатор созданной сборки
}
Получение списка всех сборок
REQUEST: endpoint api/matcher/list?token=XXXXXX
Обновление исходных записей
endpoint: api/matcher/update&token=XXXXXXXXXXX
REQUEST
{
"matcher_id": 10,
"records": [
{
"sku": "articul_code",
"vcode": "5531",
"brand": "ngk",
"title": "full item title",
"model": "5531",
"tags": [
"some",
"free",
"tags"
],
"price": 5000
}
]
}
Запуск сбора данных
endpoint api/matcher/start&token=XXXXXXXXXXX
REQUEST:
{
"matcher_id": 10
}
RESPONSE:
{
"message": "Расшифровка ошибки если есть"
}
Остановка сбора данных
endpoint api/matcher/stop&token=XXXXXXXXXXX
REQUEST:
{
"matcher_id": 10
}
RESPONSE:
{
"message": "Расшифровка ошибки если есть"
}
Состояние сборки
endpoint: api/matcher/status REQUEST:
{
"matcher_id" : 10
}
RESPONSE:
{
"state": "processing", // Общее состояние
"progress" : 10, // Общий прогресс
"watchers": [
{
"id": 11,
"kind" : "source", // rival | source - rival процениваемый сайт, source ваши исходные данные
"type" : "file", // site | file - site тип данных челевой сайт, file - тип данных фаил
"title": "test 1",
"state": "processing", // Состояние конкретного магазина
"progress": 20, // его прогресс
"updated_at": "2019-10-12T07:20:50.52Z" // дата последней обновленной записи
},
{
"comment": "Сканирование...",
"id": 22850,
"kind": "rival",
"progress": 10,
"started_at": "2022-09-22T11:34:43+03:00",
"state": "processing",
"title": "emex.ru",
"type": "site"
}
]
}
Получение данных
endpoint: api/matcher/export&token=XXXXXXXXXXX
REQUEST:
{
"matcher_id": 10,
"size" : 10, // размер страницы (0 вернет все данные)
"page" : 2, // запрашиваема странца, если будет больше чем возможно вернуть, вернется код 404
"render" : "autoparts",
"parts_type" : "direct" // direct | original | replace | analog | others
}
RESPONSE:
{
"data": [], // данные
"page": 249, // запрощенная страница (по которой возвращенны данные)
"size": 10, // размер запрошенной страницы
"total": 2712 // всего строк в данных, не страниц, строк.
}