Rest API Список типів списань - datawizio/pythonAPI GitHub Wiki

34. Ресурс /loss-types/ (Типи списань, Колекція)

  • Список типів списань. За допомогою ресурсу /loss-types/ можна отримати доступ до списку типів списань, а також додавати нові.

34.1. Структура типу списання

34.1.1. Структура об'єкта Loss Type (loss-types):

Назва поля Тип поля розмір Обов'язково Тільки читання Примітка
url URL ні так url цього об'єкта
loss_type_id рядок так ні ідентифікатор типу списання
name рядок ні ні назва типу списання

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

З ресурсом /loss-types/ підтримуються наступні команди:

  • GET - отримати одну сторінку колекції

  • POST - додати новий тип списання

  • OPTIONS - мета-інформація по структурі об'єкта

  • HEAD - аналог GET, але повертається тільки заголовок відповіді

34.2.1. GET /loss-types/ - отримати одну сторінку колекції.

Вид команди: GET http://api.datawiz.io/api/v1/loss-types/

Суфікси:
  • .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/loss-types/?max_date=0000-00-00

{
     "count": 0, 
     "next": null, 
     "previous": null, 
     "results": [] 
} 

Приклад колекції із 2-х елементів: GET http://api.datawiz.io/api/v1/loss-types/?format=json&page_size=2:

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

{ "count": 1650, "next": null, "previous": "http://api.datawiz.io/api/v1/loss-types/?page=164", "results": [ { "url": "http://api.datawiz.io/api/v1/loss-types/0fa9d963-62b9-11e5-81c6-001b21a1ef75/", "loss_type_id": "0fa9d963-62b9-11e5-81c6-001b21a1ef75", "name": "Списання №1" }, { "url": "http://api.datawiz.io/api/v1/loss-types/61ff1de8-b8e0-11e3-b1b7-001b21a1ef75/", "loss_type_id": "61ff1de8-b8e0-11e3-b1b7-001b21a1ef75", "name": "Списання №2" }

Повідомлення про помилку:

У випадку виникнення помилки сервер повертає відповідь із відповідним статусом, а також повідомленням про помилку, записану в ключі detail:

HTTP 404 NOT FOUND 
Content-Type: application/json 
Vary: Accept 
Allow: GET, PUT, DELETE, HEAD, OPTIONS, PATCH 

{      "detail": "Not found" }

34.2.2. POST /loss-types/ - додати новий тип списання

Вид команди: POST http://api.datawiz.io/api/v1/loss-types/?format=json

Суфікси:
  • .json - Взаємодіяти з сервером в форматі JSON
  • .api - Взаємодіяти з сервером в форматі HTML (тестова платформа)   
Параметри:
  • Format = json - взаємодіяти з сервером в форматі JSON
  • Format = api - взаємодіяти з сервером в форматі HTML (тестова платформа)
Дані запиту:

В запиті передається JSON-об'єкт, який описує тип списання. Важливі два поля: loss_type_id, name.

Приклад коректних запитів на додавання нового типу списання: POST http://api.datawiz.io/api/v1/loss-types/.json

{
            "loss_type_id": "0fa9d963-62b9-11e5-81c6-001b21a1ef75",
            "name": "Списання №9"
} 
Відповідь сервера:

При коректній обробці запиту сервер повертає код статусу 201 статус створення об'єкта.

Приклад відповіді сервера:

HTTP 201 CREATED 
Content-Type: application / json 
Vary: Accept 
Location: http://api.datawiz.io/api/v1/loss-types/
Allow: GET, POST, HEAD, OPTIONS 
{
"created": 1,
"updated": 0
} 
Обмеження (Constraints):

Не можна додати на сервер тип списання, якщо він вже існує з таким ідентифікатором loss_type_id

Повідомлення про помилку:

У випадку виникнення помилки сервер повертає відповідь із відповідним статусом, а також повідомленням про помилку, записаним навпроти імені поля, з яким ця помилка пов'язана. Якщо помилка стосується не визначеного поля, а всього об'єкту, то повідомлення про помилку буде записано навпроти ключа non_field_errors.

ПРИМІТКА. Кожне повідомлення про помилку являє собою * колекцію * ( масив ) рядків символів.

Приклад відповіді сервера при виникненні помилки (поле loss_type_id передано порожнім):

HTTP 400 BAD REQUEST 
Content-Type: application/json 
Vary: Accept 
Allow: GET, POST, HEAD, OPTIONS 
{
     "loss_type_id": [
         "This field is required." 
     ] 
} 

34.2.3. OPTIONS /loss-types/ - мета-інформація по структурі об'єкта

При виконанні даної команди повертається така JSON-структура:

OPTIONS /api/v1/loss-types/

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

{
    "name": "Loss Type List",
    "description": "",
    "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"
            },
            "loss_type_id": {
                "type": "string",
                "required": true,
                "read_only": false,
                "label": "Loss type id"
            },
            "name": {
                "type": "string",
                "required": true,
                "read_only": false,
                "label": "Name",
                "max_length": 200
            }
        }
    }
}
⚠️ **GitHub.com Fallback** ⚠️