196 lines
4.1 KiB
Markdown
196 lines
4.1 KiB
Markdown
## Дополнительный формат API (первичный черновик)
|
||
|
||
Используемые коды:
|
||
|
||
- 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
|
||
}
|
||
```
|
||
|
||
### Обновление исходных записей
|
||
|
||
endpoint: api/(matcher?|source?)/update&token=XXXXXXXXXXX
|
||
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
|
||
}
|
||
]
|
||
}
|
||
|
||
```
|
||
|
||
### Запуск сбора данных
|
||
|
||
endpoint api/matcher/start&token=XXXXXXXXXXX
|
||
REQUEST:
|
||
|
||
```json
|
||
{
|
||
"matcher_id": 10
|
||
}
|
||
```
|
||
|
||
RESPONSE:
|
||
CODES: 201, 400, 403, 502
|
||
|
||
```json
|
||
{
|
||
"code": "http_code_duplicate",
|
||
"start_id": "идентификатор сбора данных",
|
||
"message": "Расшифровка ошибки если есть"
|
||
}
|
||
```
|
||
|
||
### Остановка сбора данных
|
||
|
||
endpoint api/matcher/stop&token=XXXXXXXXXXX
|
||
REQUEST:
|
||
```json
|
||
{
|
||
"matcher_id": 10
|
||
}
|
||
```
|
||
RESPONSE:
|
||
CODES: 201, 400, 403, 502
|
||
|
||
```json
|
||
{
|
||
"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"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
|
||
### Получение данных
|
||
|
||
endpoint: api/matcher/export&token=XXXXXXXXXXX
|
||
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" : [
|
||
... данные в формате как в примере с учетом пожеланий по дате и кол-ву ...
|
||
]
|
||
}
|
||
``` |