initial additional api definition
This commit is contained in:
		
							
								
								
									
										196
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										196
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,2 +1,196 @@ | ||||
| # api | ||||
| ## Дополнительный формат 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" : [ | ||||
|     ... данные в формате как в примере с учетом пожеланий по дате и кол-ву ... | ||||
|   ] | ||||
| } | ||||
| ``` | ||||
		Reference in New Issue
	
	Block a user