Rest API Список возвратов поставщикам - datawizio/pythonAPI GitHub Wiki
- С помощью ресурса
/supplier-refunds/
можно получить доступ к списку возвратов поставщикам, а также добавлять новые возвраты.
Название поля | Тип поля | размер | Обязательно | Только чтение | Примечание |
---|---|---|---|---|---|
url |
URL | нет | да | url этого объекта | |
document_id |
строка | да | нет | идентификатор возврата | |
supplier_id |
рядок | да | нет | идентификатор поставщика | |
supplier_url |
URL | нет | да | ссылка на поставщика | |
shop_id |
строка | да | нет | идентификатор магазина | |
shop_url |
URL | нет | да | ссылка на магазин | |
date |
строка | да | нет | дата возврата | |
responsible |
строка | нет | нет | лицо, ответственное за оформление возврата | |
description |
строка | нет | нет | Дополнительные заметки | |
products |
список | де | нет | список возвращенных продуктов |
Название поля | Тип поля | размер | Обязательно | Только чтение | Примечание |
---|---|---|---|---|---|
url |
URL | нет | да | ссылка на возвращенный продукт | |
product_id |
строка | да | нет | идентификатор товара | |
product_url |
URL | нет | да | ссылка на товар | |
receive_document_id |
строка | да | нет | Комплексный идентификатор документа получения (<идентификатор-магазина>_<идентификатор-документа> ) |
|
receive_document_url |
URL | нет | да | ссылка на документ получения | |
qty |
число | да | нет | число единиц товара | |
price |
число | да | нет | цена товара | |
total_price |
число | да | нет | общая стоимость товара |
С ресурсом /supplier-refunds/
поддерживаются следующие команды:
- GET
- получить одну страницу коллекции
- POST
- добавить новый документ возврата или список документов
- OPTIONS
- мета-информация по структуре объекта
- HEAD
- аналог GET
, но возвращается только заголовок ответа
Вид команды: GET http://api.datawiz.io/api/v1/supplier-refunds/
-
.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-refunds/
{
"count": 0,
"next": null,
"previous": null,
"results": []
}
Пример коллекции из 2-х элементов:
GET http://api.datawiz.io/api/v1/supplier-refunds/?format=json&page_size=2
:
HTTP 200 OK
Allow: GET, POST, DELETE, OPTIONS
Content-Type: application/json
Vary: Accept
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"url": "http://api.datawiz.io/api/v1/supplier-refunds/test-document_1147/",
"supplier_id": "supplier-1",
"supplier_url": "http://api.datawiz.io/api/v1/suppliers/supplier-1/",
"shop_id": "37a9969a-1ce0-11e6-b15d-00505600b73b",
"shop_url": "http://api.datawiz.io/api/v1/shops/37a9969a-1ce0-11e6-b15d-00505600b73b/",
"date": "2017-01-01T15:39:00",
"identifier": "test-document",
"responsible": null,
"description": null,
"products": [
{
"url": "http://api.datawiz.io/api/v1/supplier-refunds/test-document_1147/products/4/",
"product_id": "43b9900b-78b0-11e5-ab16-000c29883704",
"product_url": "http://api.datawiz.io/api/v1/products/43b9900b-78b0-11e5-ab16-000c29883704/",
"receive_document_url": "http://api.datawiz.io/api/v1/receive-documents/9856d0f5-0929-11e5-80d8-7054d2c57800_1111/",
"qty": "1.0000",
"price": "5.0000",
"total_price": "5.0000"
}
]
},
{
"url": "http://api.datawiz.io/api/v1/supplier-refunds/test-document2_1147/",
"supplier_id": "supplier-1",
"supplier_url": "http://api.datawiz.io/api/v1/suppliers/supplier-1/",
"shop_id": "37a9969a-1ce0-11e6-b15d-00505600b73b",
"shop_url": "http://api.datawiz.io/api/v1/shops/37a9969a-1ce0-11e6-b15d-00505600b73b/",
"date": "2017-01-01T15:39:00",
"identifier": "test-document2",
"responsible": null,
"description": null,
"products": [
{
"url": "http://api.datawiz.io/api/v1/supplier-refunds/test-document2_1147/products/5/",
"product_id": "43b9900b-78b0-11e5-ab16-000c29883704",
"product_url": "http://api.datawiz.io/api/v1/products/43b9900b-78b0-11e5-ab16-000c29883704/",
"receive_document_url": "http://api.datawiz.io/api/v1/receive-documents/9856d0f5-0929-11e5-80d8-7054d2c57800_1111/",
"qty": "1.0000",
"price": "5.0000",
"total_price": "5.0000"
}
]
}
]
}
В случае возникновения ошибки сервер возвращает ответ с соответствующим статусом, а также сообщением об ошибке, записанную в ключе 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-refunds/?format=json
-
.json
- Взаимодействовать с сервером в формате JSON -
.api
- Взаимодействовать с сервером в формате HTML (тестовая платформа)
-
Format = json
- Взаимодействовать с сервером в формате JSON -
Format = api
- Взаимодействовать с сервером в формате HTML (тестовая платформа)
В запросе передается JSON-объект, который описывает возврат.
Пример корректных запросов на добавление нового документа:
POST http://api.datawiz.io/api/v1/supplier-refunds/.json
{
"supplier_id": "supplier-1",
"shop_id": "37a9969a-1ce0-11e6-b15d-00505600b73b",
"date": "2017-1-1 15:39:00",
"document_id": "test-document",
"products": [{"product_id": "43b9900b-78b0-11e5-ab16-000c29883704", "qty": 1, "price": 5, "total_price": 5, "receive_document_id": "9856d0f5-0929-11e5-80d8-7054d2c57800_1111"}]
}
При корректной обработке запроса сервер возвращает код статуса 201 статус создания объекта.
Пример ответа сервера:
HTTP 201 CREATED
Content-Type: application / json
Vary: Accept
Location: http://api.datawiz.io/api/v1/supplier-refunds/
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
{
"document_id": [
"This field is required."
]
}
При выполнении данной команды возвращается такая JSON-структура:
OPTIONS /api/v1/supplier-refunds/
HTTP 200 OK
Allow: GET, POST, DELETE, OPTIONS
Content-Type: application/json
Vary: Accept
{
"name": "Supplier Refund 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"
},
"supplier_id": {
"type": "integer",
"required": true,
"read_only": false,
"label": "Supplier id"
},
"supplier_url": {
"type": "integer",
"required": false,
"read_only": true,
"label": "Supplier 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"
},
"date": {
"type": "datetime",
"required": true,
"read_only": false,
"label": "Date"
},
"identifier": {
"type": "string",
"required": true,
"read_only": false,
"label": "Identifier",
"max_length": 150
},
"responsible": {
"type": "string",
"required": false,
"read_only": false,
"label": "Responsible",
"max_length": 150
},
"description": {
"type": "string",
"required": false,
"read_only": false,
"label": "Description",
"max_length": 200
},
"products": {
"type": "field",
"required": true,
"read_only": false,
"label": "Products",
"child": {
"type": "nested object",
"required": true,
"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"
},
"receive_document_id": {
"type": "string",
"required": true,
"read_only": false,
"label": "Receive document id",
"max_length": 300
},
"receive_document_url": {
"type": "field",
"required": false,
"read_only": true,
"label": "Receive document url"
},
"qty": {
"type": "decimal",
"required": true,
"read_only": false,
"label": "Qty"
},
"price": {
"type": "decimal",
"required": true,
"read_only": false,
"label": "Price"
},
"total_price": {
"type": "decimal",
"required": true,
"read_only": false,
"label": "Total price"
}
}
}
}
}
}
}