2022-09-16 02:43:55 +03:00
|
|
|
|
## Дополнительный формат API (первичный черновик)
|
2022-09-16 01:01:12 +03:00
|
|
|
|
|
2022-09-16 02:43:55 +03:00
|
|
|
|
Используемые коды:
|
|
|
|
|
|
|
|
|
|
- 200 - Выполнено успешно
|
|
|
|
|
- 201 - Заявка принята
|
|
|
|
|
- 403 - Доступ запрещен, не верный токен
|
|
|
|
|
- 502 - Внутрення ошибка (расшифровка в поле message в теле ответа)
|
|
|
|
|
|
|
|
|
|
Используемые сущности
|
|
|
|
|
- matcher - (сборка) совокупность сайтов и исходных записей для сбора информации. Аналог группы.
|
|
|
|
|
- watchers - сайты, загруженные файлы поставщиков и/или конкурентов, метаформулы для вычисления результатов
|
|
|
|
|
- records - исходные данные для сбора информации
|
|
|
|
|
- rules - Правила сбора информации. Алиасы для брендов, логин пароль для авторизации на сайте и т.п
|
|
|
|
|
|
|
|
|
|
### Создание сборки
|
|
|
|
|
|
|
|
|
|
endpoint: api/matcher/create?token=XXXXXXXXXXX
|
|
|
|
|
|
|
|
|
|
REQUEST:
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
"title": "Произвольное название сборки",
|
|
|
|
|
"watchers": [
|
|
|
|
|
{
|
|
|
|
|
"type" : "site",
|
|
|
|
|
"sld" : "emex.ru",
|
|
|
|
|
"city" : "москва",
|
|
|
|
|
"rules" : ["emex"]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"records": [
|
|
|
|
|
{
|
|
|
|
|
"sku": "articul_code",
|
|
|
|
|
"vcode": "5531",
|
|
|
|
|
"brand": "ngk",
|
|
|
|
|
"title": "full item title",
|
|
|
|
|
"model": "5531",
|
|
|
|
|
"tags": [
|
|
|
|
|
"some",
|
|
|
|
|
"free",
|
|
|
|
|
"tags"
|
|
|
|
|
],
|
|
|
|
|
"price": 5000
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
RESPONSE:
|
|
|
|
|
codes (200, 400, 403, 502)
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"code" : "http_code_duplicate",
|
|
|
|
|
"message" : "Описание ошибки если есть",
|
|
|
|
|
"matcher_id" : 10
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Обновление исходных записей
|
|
|
|
|
|
2022-09-16 02:52:41 +03:00
|
|
|
|
endpoint: api/(matcher?|source?)/update?token=XXXXXXXXXXX
|
2022-09-16 02:43:55 +03:00
|
|
|
|
REQUEST
|
|
|
|
|
```json
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
"matcher_id": 10,
|
|
|
|
|
"matching": [
|
|
|
|
|
"brand",
|
|
|
|
|
"model"
|
|
|
|
|
],
|
|
|
|
|
"actions": ["create", "update", "delete"],
|
|
|
|
|
"records": [
|
|
|
|
|
{
|
|
|
|
|
"sku": "articul_code",
|
|
|
|
|
"vcode": "5531",
|
|
|
|
|
"brand": "ngk",
|
|
|
|
|
"title": "full item title",
|
|
|
|
|
"model": "5531",
|
|
|
|
|
"tags": [
|
|
|
|
|
"some",
|
|
|
|
|
"free",
|
|
|
|
|
"tags"
|
|
|
|
|
],
|
|
|
|
|
"price": 5000
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
2022-09-16 02:52:41 +03:00
|
|
|
|
RESPONSE:
|
|
|
|
|
codes: 201, 400, 403, 502
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"code": "http_code_duplicate",
|
|
|
|
|
"message" : ""
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
2022-09-16 02:43:55 +03:00
|
|
|
|
### Запуск сбора данных
|
|
|
|
|
|
2022-09-16 02:52:41 +03:00
|
|
|
|
endpoint api/matcher/start?token=XXXXXXXXXXX
|
2022-09-16 02:43:55 +03:00
|
|
|
|
REQUEST:
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"matcher_id": 10
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
RESPONSE:
|
|
|
|
|
CODES: 201, 400, 403, 502
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"code": "http_code_duplicate",
|
|
|
|
|
"start_id": "идентификатор сбора данных",
|
|
|
|
|
"message": "Расшифровка ошибки если есть"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Остановка сбора данных
|
|
|
|
|
|
2022-09-16 02:52:41 +03:00
|
|
|
|
endpoint api/matcher/stop?token=XXXXXXXXXXX
|
2022-09-16 02:43:55 +03:00
|
|
|
|
REQUEST:
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"matcher_id": 10
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
RESPONSE:
|
|
|
|
|
CODES: 201, 400, 403, 502
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
2022-09-16 02:52:41 +03:00
|
|
|
|
"code": "http_code_duplicate",
|
2022-09-16 02:43:55 +03:00
|
|
|
|
"message": ""
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Состояние сборки
|
|
|
|
|
|
|
|
|
|
endpoint: api/matcher/status
|
|
|
|
|
|
|
|
|
|
REQUEST:
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"matcher_id" : 10
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
RESPONSE:
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"code": "http_code_duplicate",
|
|
|
|
|
"summary": "processing",
|
|
|
|
|
"watchers": [
|
|
|
|
|
{
|
|
|
|
|
"id": 11,
|
|
|
|
|
"title": "emex.ru",
|
|
|
|
|
"state": "processing",
|
|
|
|
|
"progress": 20,
|
|
|
|
|
"started_at": "2019-10-12T07:20:50.52Z"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"id": 12,
|
|
|
|
|
"title": "autopiter.ru",
|
|
|
|
|
"state": "idle",
|
|
|
|
|
"finished_at": "2019-10-12T07:20:50.52Z"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Получение данных
|
|
|
|
|
|
2022-09-16 02:52:41 +03:00
|
|
|
|
endpoint: api/matcher/export?token=XXXXXXXXXXX
|
2022-09-16 02:43:55 +03:00
|
|
|
|
REQUEST:
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"matcher_id": 10,
|
|
|
|
|
"format": "json|xlsx|csv",
|
|
|
|
|
"size": 100, // размер страницы (0 - вернет все данные)
|
|
|
|
|
"page": 1 // Запрашиваемая страница
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
RESPONSE:
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"page" : 1, // Номер страницы с которой передаются данные
|
|
|
|
|
"pages": 10, // ВСего страниц с данными
|
|
|
|
|
"next" : 2, // Номер следующей страницы
|
|
|
|
|
"is_last" : false // Последняя страница ?
|
|
|
|
|
"data" : [
|
|
|
|
|
... данные в формате как в примере с учетом пожеланий по дате и кол-ву ...
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
```
|