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

32. Ресурс /loss-types/ (Список типов списаний, Коллекция)

  • Список типов списаний (loss-types) - это список типов списаний, которые присутствуют в сети. С помощью ресурса /loss-types/ можно получить доступ к списку типов списаний, а также добавлять новые.

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

32.1.1. Структура объекта тип списания (loss-types):

Название поля Тип поля Размер Обязательное Только чтение Примечание
url URL нет да url этого объекта
loss_type_id строка да нет идентификатор типа списания
name строка нет нет название типа списания

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

С ресурсом /loss-types/ поддерживаются следующие команды:

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

32.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/18/", "loss_type_id": "18", "name": "Списание №1" }, { "url": "http://api.datawiz.io/api/v1/loss-types/19/", "loss_type_id": "19", "name": "Списание №2" }

Сообщение об ошибке:

В случае возникновения ошибки сервер возвращает ответ с соответствующим статусом, а также сообщением об ошибке, записанную в ключе detail:

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

{      "detail": "Not found" }

32.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": "20",
            "name": "Списание №3"
} 
Ответ сервера:

При корректной обработке запроса сервер возвращает код статуса 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." 
     ] 
} 

32.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": "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"
            },
            "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** ⚠️