Rest API Список брендів - datawizio/pythonAPI GitHub Wiki

26. Ресурс /brands/ (Список брендів, Колекція)

  • Список брендів (brands) - це список брендів, які є наявні мережі. З допомогою ресурсу /brands/ можна отримати доступ до списку брендів, а також додавати нові бренди.

26.1. Структура бренду

26.1.1. Структура об'єкта бренд (brands):

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

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

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

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

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

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

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

Приклад колекції із 2-х елементів: GET http://api.datawiz.io/api/v1/brands/?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/brands/?page=164", "results": [ { "url": "http://api.datawiz.io/api/v1/brands/0fa9d963-62b9-11e5-81c6-001b21a1ef75/", "brand_id": "0fa9d963-62b9-11e5-81c6-001b21a1ef75", "name": "КАЛИНІВКА" }, { "url": "http://api.datawiz.io/api/v1/brands/61ff1de8-b8e0-11e3-b1b7-001b21a1ef75/", "brand_id": "61ff1de8-b8e0-11e3-b1b7-001b21a1ef75", "name": "SANO" }

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

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

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

{      "detail": "Not found" }

26.2.2. POST /brands/ - додати новий бренд

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

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

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

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

{
            "brand_id": "0fa9d963-62b9-11e5-81c6-001b21a1ef75",
            "name": "КАЛИНІВКА"
} 
Відповідь сервера:

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

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

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

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

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

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

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

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

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

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

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

OPTIONS /api/v1/brands/

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

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