api/README.md
2022-09-22 02:19:35 +03:00

182 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Дополнительный формат API (первичный черновик)
Все запросы передаются методом POST
Все структуры строго типизированы, т.е. надо следить за типа данных, числа передаются без кавычек, строки в кавычках.
Используемые коды:
- 200 - Выполнено успешно
- 206 - Частично выполнено (не завершено, например, генерирование отчета)
- 202 - Заявка принята
- 400 - Не правильно оформлен запрос
- 403 - Доступ запрещен, не верный токен
- 404 - Не найдено, например пользователь или сборка
- 502 - Внутрення ошибка (расшифровка в поле message в теле ответа)
Используемые сущности
- matcher - (сборка) совокупность сайтов и исходных записей для сбора информации. Аналог группы.
- watchers - сайты, загруженные файлы поставщиков и/или конкурентов, метаформулы для вычисления результатов
- records - исходные данные для сбора информации
- rules - Правила сбора информации. Алиасы для брендов, логин пароль для авторизации на сайте и т.п
Для поддержки сжатия в ответе, при запросе используйте заголовок Accept-Encoding: "gzip" в соостветсии со стандартом
### Создание сборки
endpoint: api/matcher/create?token=XXXXXXXXXXX
REQUEST: (более полный пример в файле examples/create.json)
```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:
```json
{
"message" : "Описание ошибки если есть",
"matcher_id" : 10 // Идентификатор созданной сборки
}
```
### Получение списка всех сборок
REQUEST:
endpoint matcher/list?token=XXXXXX
### Обновление исходных записей
endpoint: api/matcher/update&token=XXXXXXXXXXX
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
}
]
}
```
### Запуск сбора данных
endpoint api/matcher/start&token=XXXXXXXXXXX
REQUEST:
```json
{
"matcher_id": 10
}
```
RESPONSE:
```json
{
"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
{
"state": "processing", // Общее состояние
"progress" : 10, // Общий прогресс
"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,
"render": "autoparts"
}
```
RESPONSE:
```json
{
... данные изменены для уменьшение размера ответа и более удобной обработки, в ответе все будет понятно ...
}
```