api/README.md

195 lines
5.5 KiB
Markdown
Raw Permalink Normal View History

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
}
```