Rest API Список брендів - datawizio/pythonAPI GitHub Wiki
- Список брендів (
brands
) - це список брендів, які є наявні мережі. З допомогою ресурсу/brands/
можна отримати доступ до списку брендів, а також додавати нові бренди.
Назва поля | Тип поля | розмір | Обов'язково | Тільки читання | Примітка |
---|---|---|---|---|---|
url |
URL | ні | так | url цього об'єкта | |
brand_id |
рядок | так | ні | ідентифікатор бренда | |
name |
рядок | ні | ні | назва бренда |
З ресурсом /brands/
підтримуються наступні команди:
- GET
- отримати одну сторінку колекції
- POST
- додати новий бренд або список брендів
- OPTIONS
- мета-інформація по структурі об'єкта
- HEAD
- аналог GET
, але повертається тільки заголовок відповіді
Вид команди: 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"
}
Вид команди: 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
}
Не можна додати на сервер бренд, якщо вже існує бренд з таким ідентифікатором 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."
]
}
При виконанні даної команди повертається така 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
}
}
}
}