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