Go to file
2022-09-21 20:33:47 +03:00
examples add info 2022-09-21 20:33:47 +03:00
README.md add info 2022-09-21 20:33:47 +03:00

Дополнительный формат API (первичный черновик)

Используемые коды:

  • 200 - Выполнено успешно
  • 201 - Заявка принята
  • 403 - Доступ запрещен, не верный токен
  • 502 - Внутрення ошибка (расшифровка в поле message в теле ответа)

Используемые сущности

  • matcher - (сборка) совокупность сайтов и исходных записей для сбора информации. Аналог группы.
  • watchers - сайты, загруженные файлы поставщиков и/или конкурентов, метаформулы для вычисления результатов
  • records - исходные данные для сбора информации
  • rules - Правила сбора информации. Алиасы для брендов, логин пароль для авторизации на сайте и т.п

Создание сборки

endpoint: api/matcher/create?token=XXXXXXXXXXX

REQUEST:



{
  "title" : "Произвольное название сборки",
  "watchers" : [
	{
	  "type" : "site",
	  "sld" : "emex.ru",
	  "city" : "москва"
	}
  ],
  "records" : [
	{
	  "sku"   : "your_inner_code",
	  "vcode" : "5531",
	  "brand" : "ngk",
	  "model" : "5531",
	  "price" : 12,
	  "tags" : [
		"tag1",
		"tag2"
	  ]
	}
  ]
}

RESPONSE:
possible codes (202, 400, 403, 500, 502)

{
  "message" : "Описание ошибки если есть",
  "matcher_id" : 10,
  ... В случае успеха поля как в ответе на matcher/status с описание состояния сборки ...
}

Обновление исходных записей

endpoint: api/(matcher)/update?token=XXXXXXXXXXX
REQUEST


{
  "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
    }
  ]
}

RESPONSE:
codes: 201, 400, 403, 502

{
  "code": "http_code_duplicate",
  "message" : ""
}

Запуск сбора данных

endpoint api/matcher/start?token=XXXXXXXXXXX
REQUEST:

{
  "matcher_id": 10
}

RESPONSE:
CODES: 201, 400, 403, 502

{
  "code": "http_code_duplicate",
  "start_id": "идентификатор сбора данных",
  "message": "Расшифровка ошибки если есть"
}

Остановка сбора данных

endpoint api/matcher/stop?token=XXXXXXXXXXX
REQUEST:

{
  "matcher_id": 10
}

RESPONSE:
CODES: 201, 400, 403, 502

{
  "code": "http_code_duplicate",
  "message": ""
}

Состояние сборки

endpoint: api/matcher/status

REQUEST:

{
  "matcher_id" : 10
}

RESPONSE:

{
  "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:

{
  "matcher_id": 10,
  "format": "json|xlsx|csv",
  "size": 100,   // размер страницы (0 - вернет все данные)
  "page": 1      // Запрашиваемая страница
}

RESPONSE:

{
  "page" : 1,       // Номер страницы с которой передаются данные
  "pages": 10,      // ВСего страниц с данными
  "next"  : 2,      // Номер следующей страницы
  "is_last" : false // Последняя страница ?
  "data" : [
    ... данные в формате как в примере с учетом пожеланий по дате и кол-ву ...
  ]
}