Rest API Список категорійних менеджерів - datawizio/pythonAPI GitHub Wiki
Список категорійних менеджерів - це список категорійних менеджерів, які працюють у магазинах мережі. З допомогою ресурсу /category-managers/
можна отримати доступ до списку категорійних менеджерів, а також додавати нових категорійних менеджерів.
Назва поля | Тип поля | розмір | Обов'язкове | Тільки читання | Примітка |
---|---|---|---|---|---|
url |
URL | ні | так | url цього об'єкта | |
identifier |
рядок | 200 | так | ні | ідентифікатор категорійного менеджера |
shops |
список | 100 | так | ні | магазин, за яким закріплений категорійний менеджер |
categories |
список | так | ні | категорії і продукти, за які відповідальний категорійний менеджер (можна задавати тільки категорії, або тільки продукти) | |
products |
список | так | ні | ||
name |
рядок | 100 | так | ні | ім'я категорійного менеджера |
date_from |
дата | ні | ні | дата, з якої працює категорійний менеджер |
Для управління ресурсом /category-managers/
підтримуються наступні команди:
-
GET
- отримати одну сторінку колекції -
POST
- добавити нового категорійного менеджера -
OPTIONS
- мета-інформація по структурі об'єкта
Вид команди: GET http://api.datawiz.io/api/v1/category-managers
-
.json
- отримати відповідь з сервера в форматі JSON -
.api
- отримати відповідь з сервера в форматі HTML (тестова платформа)
-
format = json | api
- аналог вищевказаних суфіксів -
page_size = nn
- встановити розмір сторінки рівнийnn
об'єктів -
page = n
- завантажити сторінкуn
-
search = text
- відображати тільки об'єкти, в поліname
яких знайдено "text" -
ordering = name | identifier
- сортувати по полю в алфавітному порядку (від меншого - до більшого) -
ordering = -name | -identifier
- сортувати по полю в зворотному порядку
Об'єкт "колекція" складається з чотирьох полів (count
, next
, previous
, results
).
Приклад пустої колекції, отриманої в результаті запиту:
GET http://api.datawiz.io/api/v1/category-managers/.json/?search=unknown-string
{
"count": 0,
"next": null,
"previous": null,
"results": []
}
Приклад колекції з 2-х елементів:
GET http://api.datawiz.io/api/v1/category-managers/?format=api&page_size=2
:
HTTP 200 OK
Content-Type: application/json
Vary: Accept
Allow: GET, OPTIONS
{
"count": 3,
"next": "http://api.datawiz.io/api/v1/category-managers/?page=2&page_size=2&format=api",
"previous": null,
"results": [
{
"url": "http://api.datawiz.io/api/v1/category-managers/CATEGORY-ID-DPLD-2FQF-ZQSN/",
"manager_id": "CATEGORY-ID-DPLD-2FQF-ZQSN",
"shops": [
"9856d0f5-0929-11e5-80d8-7054d2c57800"
],
"categories": [
"99fdc926-5e2b-11e6-bfc8-00505600b73b"
],
"name": "Vasya",
"date_from": null
},
{
"url": "http://api.datawiz.io/api/v1/category-managers/CATEGORY-ID-PGEK-DZFY-4FU2/",
"manager_id": "CATEGORY-ID-PGEK-DZFY-4FU2",
"shops": [],
"categories": [],
"name": "Vasya",
"date_from": null
}
]
}
У випадку виникнення помилки сервер повертає відповідь з відповідним статусом, а також повідомлення про помилку, записаним у ключі detail
і/або в полі http.response.content
:
HTTP 404 NOT FOUND
Content-Type: application/json
Vary: Accept
Allow: GET, OPTIONS, PATCH
{
"detail": "Not found"
}
Вид команди: POST http://api.datawiz.io/api/v1/category-managers/?format=json
-
.json
- отримати відповідь з сервера в форматі JSON -
.api
- отримати відповідь з сервера в форматі HTML (тестова платформа)
-
format = json | api
- аналог вищевказаних суфіксів
У запиті передається JSON-об'єкт типу словник (dictionary), який описує нового категорійного менеджера. Важливі поля: identifier
, shops
, categories
, products
, name
і date_from
. Послідовність полів не принципова.
Приклад запиту на додавання нового категорійного менеджера:
POST http://api.datawiz.io/api/v1/category-managers/.json
{
"identifier": "124",
"shops": ["Shop1", "Shop2"],
"categories": ["Алкогольні_напої"],
"name": "Олександр",
"date_from": "2016-11-10",
}
При коректній обробці запиту сервер повертає код статусу 201 і статус створення об'єкта.
Приклад відповіді сервера:
HTTP 201 CREATED
Content-Type: application/json
Vary: Accept
Location: http://api.datawiz.io/api/v1/category-managers/124/
Allow: GET, POST, OPTIONS
{
"updated": 0,
"inserted": 1
}
- Якщо об'єкт з ідентифікатором
manager_id
вже існує на сервері, то вказаний запит замінить об'єкт на сервері (replace) без попередження. - Поле
name
не може бути порожнім. - Поле
identifier
не може бути порожнім. - Поле
date_from
не може бути порожнім. - Поле
shops
не може бути порожнім. - Поля
categories
іproducts
не можуть надсилатись одночасно.
У випадку виникнення помилки сервер повертає відповідь із відповідним статусом, а також повідомленням про помилку, записаним навпроти імені поля, з яким ця помилка пов'язана. Якщо помилка стосується не окремого поля, а всього об'єкта, то повідомлення про помилку буде записано навпроти ключа non_field_errors
.
ПРИМІТКА. Кожне повідомлення про помилку являє собою колекцію (масив) рядкових символів.
Приклад відповіді сервера при виникненні помилки (поле name
передано порожнім):
HTTP 400 BAD REQUEST
Content-Type: application/json
Vary: Accept
Allow: GET, POST, HEAD, OPTIONS
{
"name": [
"This field is required."
]
}
При виконанні даної команди повертається така JSON-структура:
OPTIONS /api/v1/category-managers/
HTTP 200 OK
Content-Type: application/json
Vary: Accept
Allow: GET, HEAD, OPTIONS
{
"name": "Category Manager List",
"description": "",
"renders": [
"application/json",
"text/html"
],
"parses": [
"application/json",
"application/x-www-form-urlencoded",
"multipart/form-data"
],
"actions": {
"POST": {
"url": {
"type": "field",
"required": false,
"read_only": true,
"label": "Url"
},
"categories": {
"type": "list",
"required": false,
"read_only": false,
"label": "Categories",
"child": {
"type": "integer",
"required": true,
"read_only": false
}
},
"products": {
"type": "list",
"required": false,
"read_only": false,
"label": "Products",
"child": {
"type": "string",
"required": true,
"read_only": false
}
},
"shops": {
"type": "list",
"required": true,
"read_only": false,
"label": "Shops",
"child": {
"type": "integer",
"required": true,
"read_only": false
}
},
"date_from": {
"type": "date",
"required": true,
"read_only": false,
"label": "Date from"
},
"identifier": {
"type": "string",
"required": true,
"read_only": false,
"label": "Identifier",
"max_length": 200
},
"name": {
"type": "string",
"required": true,
"read_only": false,
"label": "Name",
"max_length": 100
},
"categorymanageraccess": {
"type": "field",
"required": false,
"read_only": false,
"label": "Categorymanageraccess",
"child": {
"type": "nested object",
"required": false,
"read_only": false,
"children": {
"url": {
"type": "field",
"required": false,
"read_only": true,
"label": "Url"
},
"product_id": {
"type": "integer",
"required": true,
"read_only": false,
"label": "Product id"
},
"product_url": {
"type": "integer",
"required": false,
"read_only": true,
"label": "Product url"
},
"shop_id": {
"type": "integer",
"required": true,
"read_only": false,
"label": "Shop id"
},
"shop_url": {
"type": "integer",
"required": false,
"read_only": true,
"label": "Shop url"
}
}
}
}
}
}
}