Rest API Список документів оплати отриманого товару - datawizio/pythonAPI GitHub Wiki

28. Ресурс /order-pay-documents/ (Список документів оплати отриманого товару, Колекція)

  • З допомогою ресурсу /order-pay-documents/ можна отримати доступ до списку оплат за отриманий товар, а також додавати нові оплати.

28.1. Структура документа оплати

28.1.1. Структура об'єкта оплати (order-pay-document):

Назва поля Тип поля розмір Обов'язково Тільки читання Примітка
url URL ні так посилання на об'єкт
document_id рядок так ні ідентифікатор документа оплати
supplier_id рядок так ні ідентифікатор постачальника
supplier_url URL ні так посилання на постачальника
shop_id рядок так ні ідентифікатор магазину
shop_url URL ні так посилання на магазин
date рядок так ні дата і час документа
receive_document_id рядок так ні Комплексний ідентифікатор документа отримання (<ідентифікатор-магазину>_<ідентифікатор-документа>)
receive_document_url URL ні так посилання на документ отримання
responsible рядок ні ні особа, відповідальна за оформлення повернення
description рядок ні ні Додаткові нотатки
total_price число так ні сума оплати

28.2. Доступні команди

З ресурсом /order-pay-documents/ підтримуються наступні команди: - GET - отримати одну сторінку колекції - POST - додати новий документ оплати або список документів - OPTIONS - мета-інформація по структурі об'єкта - HEAD - аналог GET, але повертається тільки заголовок відповіді

28.2.1. GET /order-pay-documents/ - отримати одну сторінку колекції.

Вид команди: GET http://api.datawiz.io/api/v1/order-pay-documents/

Суфікси:
  • .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": [] 
} 

Приклад колекції із 1 елемента: 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": 1, "next": null, "previous": null, "results": [ { "url": "http://api.datawiz.io/api/v1/order-pay-documents/test-1_9856d0f5-0929-11e5-80d8-7054d2c57800/", "document_id": "test-1", "receive_document_url": "http://api.datawiz.io/api/v1/receive-documents/9856d0f5-0929-11e5-80d8-7054d2c57800_1111/", "shop_id": "9856d0f5-0929-11e5-80d8-7054d2c57800", "shop_url": "http://api.datawiz.io/api/v1/shops/9856d0f5-0929-11e5-80d8-7054d2c57800/", "supplier_id": "supplier-1", "supplier_ulr": "http://api.datawiz.io/api/v1/suppliers/supplier-1/", "date": "2017-01-01T00:00:00", "doc_number": "000", "responsible": "AAA", "description": "", "total_price": "100.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 /order-pay-documents/ - додати новий документ повернення

Вид команди: 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/order-pay-documents/.json


{
    "document_id": "test-1",
    "receive_document_id": "9856d0f5-0929-11e5-80d8-7054d2c57800_1111",
    "shop_id": "9856d0f5-0929-11e5-80d8-7054d2c57800",
    "supplier_id": "supplier-1",
    "date": "2017-1-1",
    "doc_number": "000",
    "responsible": "Petro",
    "description": "",
    "total_price": 100
}
Відповідь сервера:

При коректній обробці запиту сервер повертає код статусу 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/order-pay-documents/

HTTP 200 OK
Allow: GET, POST, DELETE, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "name": "Order Pay Document 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"
            },
            "document_id": {
                "type": "string",
                "required": true,
                "read_only": false,
                "label": "Document id",
                "max_length": 150
            },
            "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"
            },
            "shop_id": {
                "type": "integer",
                "required": true,
                "read_only": false,
                "label": "Shop id"
            },
            "shop_url": {
                "type": "integer",
                "required": false,
                "read_only": true,
                "label": "Shop 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"
            },
            "date": {
                "type": "datetime",
                "required": true,
                "read_only": false,
                "label": "Date"
            },
            "doc_number": {
                "type": "string",
                "required": false,
                "read_only": false,
                "label": "Doc number",
                "max_length": 200
            },
            "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
            },
            "total_price": {
                "type": "decimal",
                "required": true,
                "read_only": false,
                "label": "Total price"
            }
        }
    }
}
⚠️ **GitHub.com Fallback** ⚠️