Rest API Список возвратов поставщикам - datawizio/pythonAPI GitHub Wiki

27. Ресурс /supplier-refunds/ (Список возвратов поставщикам, Коллекция)

  • С помощью ресурса /supplier-refunds/ можно получить доступ к списку возвратов поставщикам, а также добавлять новые возвраты.

27.1. Структура возврата

27.1.1. Структура объекта возврат (supplier-refunds):

Название поля Тип поля размер Обязательно Только чтение Примечание
url URL нет да url этого объекта
document_id строка да нет идентификатор возврата
supplier_id рядок да нет идентификатор поставщика
supplier_url URL нет да ссылка на поставщика
shop_id строка да нет идентификатор магазина
shop_url URL нет да ссылка на магазин
date строка да нет дата возврата
responsible строка нет нет лицо, ответственное за оформление возврата
description строка нет нет Дополнительные заметки
products список де нет список возвращенных продуктов

27.1.2. Структура объекта products:

Название поля Тип поля размер Обязательно Только чтение Примечание
url URL нет да ссылка на возвращенный продукт
product_id строка да нет идентификатор товара
product_url URL нет да ссылка на товар
receive_document_id строка да нет Комплексный идентификатор документа получения (<идентификатор-магазина>_<идентификатор-документа>)
receive_document_url URL нет да ссылка на документ получения
qty число да нет число единиц товара
price число да нет цена товара
total_price число да нет общая стоимость товара

27.2. Доступные команды

С ресурсом /supplier-refunds/ поддерживаются следующие команды: - GET - получить одну страницу коллекции - POST - добавить новый документ возврата или список документов - OPTIONS - мета-информация по структуре объекта - HEAD - аналог GET, но возвращается только заголовок ответа

27.2.1. GET /supplier-refunds/ - получить одну страницу коллекции.

Вид команды: 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" }

27.2.2. POST /supplier-refunds/ - добавить новый документ возврата

Вид команды: 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." 
     ] 
} 

27.2.3. OPTIONS /supplier-refunds/ - мета-информация по структуре объекта

При выполнении данной команды возвращается такая 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"
                        }
                    }
                }
            }
        }
    }
}
⚠️ **GitHub.com Fallback** ⚠️