diff --git a/README.md b/README.md index 7a978aa..0d01421 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,17 @@ ## Дополнительный формат API (первичный черновик) +Все запросы передаются методом POST + +Все структуры строго типизированы, т.е. надо следить за типа данных, числа передаются без кавычек, строки в кавычках. + Используемые коды: - 200 - Выполнено успешно - - 201 - Заявка принята + - 206 - Частично выполнено (не завершено, например, генерирование отчета) + - 202 - Заявка принята + - 400 - Не правильно оформлен запрос - 403 - Доступ запрещен, не верный токен + - 404 - Не найдено, например пользователь или сборка - 502 - Внутрення ошибка (расшифровка в поле message в теле ответа) Используемые сущности @@ -13,60 +20,62 @@ - records - исходные данные для сбора информации - rules - Правила сбора информации. Алиасы для брендов, логин пароль для авторизации на сайте и т.п +Для поддержки сжатия в ответе, при запросе используйте заголовок Accept-Encoding: "gzip" в соостветсии со стандартом + ### Создание сборки endpoint: api/matcher/create?token=XXXXXXXXXXX -REQUEST: - +REQUEST: (более полный пример в файле examples/create.json) ```json - - { "title" : "Произвольное название сборки", "watchers" : [ - { - "type" : "site", - "sld" : "emex.ru", - "city" : "москва" - } + { + "type" : "site", + "sld" : "emex.ru", + "city" : "москва" + } ], "records" : [ - { - "sku" : "your_inner_code", - "vcode" : "5531", - "brand" : "ngk", - "model" : "5531", - "price" : 12, - "tags" : [ - "tag1", - "tag2" - ] - } + { + "sku": "13273", + "vcode": "C-10", + "brand": "HKT", + "model": "C-10", + "tags": ["да"] + }, + { + "sku": "9733", + "vcode": "P102", + "brand": "TAMA", + "model": "P102", + "tags": ["да"] + } ] } ``` -RESPONSE: -possible codes (202, 400, 403, 500, 502) +RESPONSE: ```json { "message" : "Описание ошибки если есть", - "matcher_id" : 10, - ... В случае успеха поля как в ответе на matcher/status с описание состояния сборки ... + "matcher_id" : 10 // Идентификатор созданной сборки } ``` +### Получение списка всех сборок +REQUEST: +endpoint matcher/list?token=XXXXXX + + ### Обновление исходных записей -endpoint: api/(matcher)/update?token=XXXXXXXXXXX +endpoint: api/matcher/update&token=XXXXXXXXXXX REQUEST ```json - { "matcher_id": 10, - "matching": ["brand","model"], - "actions": ["create", "update", "delete"], "records": [ { "sku": "articul_code", @@ -86,21 +95,10 @@ REQUEST ``` -RESPONSE: -codes: 201, 400, 403, 502 -```json -{ - "code": "http_code_duplicate", - "message" : "" -} -``` - - ### Запуск сбора данных -endpoint api/matcher/start?token=XXXXXXXXXXX +endpoint api/matcher/start&token=XXXXXXXXXXX REQUEST: - ```json { "matcher_id": 10 @@ -108,19 +106,15 @@ REQUEST: ``` RESPONSE: -CODES: 201, 400, 403, 502 - ```json { - "code": "http_code_duplicate", - "start_id": "идентификатор сбора данных", "message": "Расшифровка ошибки если есть" } ``` ### Остановка сбора данных -endpoint api/matcher/stop?token=XXXXXXXXXXX +endpoint api/matcher/stop&token=XXXXXXXXXXX REQUEST: ```json { @@ -132,15 +126,12 @@ CODES: 201, 400, 403, 502 ```json { - "code": "http_code_duplicate", - "message": "" + "message": "Расшифровка ошибки если есть" } ``` -### Состояние сборки - +### Состояние сборки endpoint: api/matcher/status - REQUEST: ```json { @@ -149,17 +140,16 @@ REQUEST: ``` RESPONSE: - ```json { - "code": "http_code_duplicate", - "summary": "processing", + "state": "processing", // Общее состояние + "progress" : 10, // Общий прогресс "watchers": [ { "id": 11, "title": "emex.ru", - "state": "processing", - "progress": 20, + "state": "processing", // Состояние конкретного магазина + "progress": 20, // его прогресс "started_at": "2019-10-12T07:20:50.52Z" }, { @@ -175,28 +165,18 @@ RESPONSE: ### Получение данных -endpoint: api/matcher/export?token=XXXXXXXXXXX +endpoint: api/matcher/export&token=XXXXXXXXXXX REQUEST: - ```json { "matcher_id": 10, - "format": "json|xlsx|csv", - "size": 100, // размер страницы (0 - вернет все данные) - "page": 1 // Запрашиваемая страница + "render": "autoparts" } ``` RESPONSE: - ```json { - "page" : 1, // Номер страницы с которой передаются данные - "pages": 10, // ВСего страниц с данными - "next" : 2, // Номер следующей страницы - "is_last" : false // Последняя страница ? - "data" : [ - ... данные в формате как в примере с учетом пожеланий по дате и кол-ву ... - ] + ... данные изменены для уменьшение размера ответа и более удобной обработки, в ответе все будет понятно ... } ``` \ No newline at end of file