Rest API Товары поставщиков - datawizio/pythonAPI GitHub Wiki
- Товары поставищков (
supplier-products
) - это товары поставщиков, которые присутствуют в сети. С помощью ресурса/supplier-products/
можно получить доступ к товарам поставщиков, а также добавлять новые.
Название поля | Тип поля | размер | Обязательно | Только чтение | Примечание |
---|---|---|---|---|---|
url |
URL | нет | да | url этого объекта | |
supplier_id |
строка | да | нет | идентификатор поставщика | |
shop_id |
строка | да | нет | идентификатор магазина | |
product_id |
строка | да | нет | идентификатор товара | |
deferment |
целое число | нет | нет | отсрочка | |
date_from |
строка | нет | нет | дата начала поставки | |
date_to |
строка | нет | нет | дата окончания поставки |
С ресурсом /supplier-products/
поддерживаются следующие команды:
-
GET
- получить одну страницу коллекции -
POST
- добавить новый объект или список объектов -
OPTIONS
- мета-информация по структуре объекта -
HEAD
- аналогGET
, но возвращается только заголовок ответа
Вид команды: GET http://api.datawiz.io/api/v1/supplier-products/
-
.json
- Получить ответ с сервера в формате JSON -
.api
- Получить ответ с сервера в формате HTML (тестовая платформа)
-
Format = json | api
- аналог вышеуказанных суффиксов -
Page_size = nn
- установить размер страницы равенnn
объектов -
Page = n
- скачать страницуn
-
Ordering = url | date | order_id
- сортировать по полю в сторону роста -
Ordering = -url | -date | order_id
- сортировать по полю в обратном порядке
Объект "коллекция" из четырех полей (count
, next
, previous
, results
).
Пример пустой коллекции, полученной в результате запроса:
GET http://api.datawiz.io/api/v1/supplier-products/
{
"count": 0,
"next": null,
"previous": null,
"results": []
}
Пример коллекции из 2-х элементов:
GET http://api.datawiz.io/api/v1/supplier-products/?format=json&page_size=2
:
HTTP 200 OK
Allow: GET, POST, DELETE, OPTIONS
Content-Type: application/json
Vary: Accept
{
"count": 815,
"next": "http://api.datawiz.io/api/v1/supplier-products/?page=2&product_id=52c89da2-e45d-11e0-bba8-003048d2b64d",
"previous": null,
"results": [
{
"url": "http://api.datawiz.io/api/v1/supplier-products/0027139014cf-e45d-11e0-bba8-c95004c5bba8_c95004c5-cbcb-11e0-83f6-0027139014cf_52c89da2-e45d-11e0-bba8-003048d2b64d/",
"supplier_id": "0027139014cf-e45d-11e0-bba8-c95004c5bba8",
"product_id": "52c89da2-e45d-11e0-bba8-003048d2b64d",
"shop_id": "c95004c5-cbcb-11e0-83f6-0027139014cf",
"bonus": "0.000",
"deferment": 0,
"date_from": "2018-01-15",
"date_to": "2018-02-15"
},
{
"url": "http://api.datawiz.io/api/v1/supplier-products/0027139014cf-e45d-11e0-bba8-c95004c5bbo1_c95004c5-cbcb-11e0-83f6-0027139014cf_64848087-cbc9-11e0-83f6-0027139014cf/",
"supplier_id": "0027139014cf-e45d-11e0-bba8-c95004c5bbo1",
"product_id": "64848087-cbc9-11e0-83f6-0027139014cf",
"shop_id": "c95004c5-cbcb-11e0-83f6-0027139014cf",
"bonus": "0.000",
"deferment": 5,
"date_from": null,
"date_to": null
},
В случае возникновения ошибки сервер возвращает ответ с соответствующим статусом, а также сообщением об ошибке, записанную в ключе detail
:
HTTP 404 NOT FOUND
Content-Type: application/json
Vary: Accept
Allow: GET, PUT, DELETE, HEAD, OPTIONS, PATCH
{
"detail": "Not found"
}
Вид команды: POST http://api.datawiz.io/api/v1/supplier-products/?format=json
-
.json
- Взаимодействовать с сервером в формате JSON -
.api
- Взаимодействовать с сервером в формате HTML (тестовая платформа)
-
Format = json
- Взаимодействовать с сервером в формате JSON -
Format = api
- Взаимодействовать с сервером в формате HTML (тестовая платформа)
В запросе передается JSON-объект, который описывает бренд. Важны три поля: supplier_id
, shop_id
, product_id
.
Пример корректных запросов на добавление нового объекта:
POST http://api.datawiz.io/api/v1/supplier-products/.json
{
"supplier_id": "0fa9d963-62b9-11e5-81c6-001b21a1ef75",
"shop_id": "c95004c5-cbcb-11e0-83f6-0027139014cf",
"product_id": "52c89da2-e45d-11e0-bba8-003048d2b64d"
}
При корректной обработке запроса сервер возвращает код статуса 201 статус создания объекта.
Пример ответа сервера:
HTTP 201 CREATED
Content-Type: application / json
Vary: Accept
Location: http://api.datawiz.io/api/v1/supplier-products/
Allow: GET, POST, HEAD, OPTIONS
{
"created": 1,
"updated": 0
}
В случае возникновения ошибки сервер возвращает ответ с соответствующим статусом, а также сообщениями об ошибке, записанными напротив имени поля, с которым эта ошибка связана. Если же ошибка касается не отдельного поля, а всего объекта, то сообщение об ошибке будет записано напротив ключа non_field_errors
.
ПРИМЕЧАНИЕ. Каждое сообщение об ошибке представляет собой * коллекцию * ( массив ) символьных строк.
Пример ответа сервера при возникновении ошибки (поле brand_id
передано пустым):
HTTP 400 BAD REQUEST
Content-Type: application/json
Vary: Accept
Allow: GET, POST, HEAD, OPTIONS
{
"supplier_id": [
"This field is required."
]
}
При выполнении данной команды возвращается такая JSON-структура:
OPTIONS /api/v1/supplier-products/
HTTP 200 OK
Allow: GET, POST, DELETE, OPTIONS
Content-Type: application/json
Vary: Accept
{
"name": "Supplier Products List",
"description": "Each object supports full create/delete options",
"renders": [
"application/json",
"text/html"
],
"parses": [
"application/json",
"application/x-www-form-urlencoded",
"multipart/form-data"
],
"actions": {
"POST": {
"url": {
"type": "string",
"required": false,
"read_only": true,
"label": "Url"
},
"supplier_id": {
"type": "string",
"required": true,
"read_only": false,
"label": "Supplier id"
},
"shop_id": {
"type": "string",
"required": true,
"read_only": false,
"label": "Shop id"
},
"product_id": {
"type": "string",
"required": true,
"read_only": false,
"label": "Product id"
},
"deferment": {
"type": "int",
"required": false,
"read_only": false,
"label": "Deferment",
},
"date_from": {
"type": "string",
"required": false,
"read_only": false,
"label": "Date from",
"date_to": {
"type": "string",
"required": false,
"read_only": false,
"label": "Date to",
}
}
}