Rest API Трафік клієнтів - datawizio/pythonAPI GitHub Wiki
- Трафік клієнтів. За допомогою ресурсу
/people-traffic/
можна отримати доступ до трафіку клієнтів в магазині, а також додавати новий трафік.
Назва поля | Тип поля | розмір | Обов'язково | Тільки читання | Примітка |
---|---|---|---|---|---|
url |
URL | ні | так | url цього об'єкта | |
traffic_id |
рядок | 100 | так | ні | ідентифікатор трафіку клієнтів |
shop_id |
рядок | 100 | так | ні | ідентифікатор магазину |
date |
рядок | так | ні | дата та час відвідування магазину | |
qty |
число | так | ні | кількість відвудувачів |
З ресурсом /people-traffic/
підтримуються наступні команди:
-
GET
- отримати одну сторінку колекції -
POST
- додати новий трафік -
DELETE
- видалити трафік -
OPTIONS
- мета-інформація по структурі об'єкта -
HEAD
- аналогGET
, але повертається тільки заголовок відповіді
Вид команди: GET http://api.datawiz.io/api/v1/people-traffic/
-
.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/people-traffic/
{
"count": 0,
"next": null,
"previous": null,
"results": []
}
Приклад колекції із 2-х елементів:
GET http://api.datawiz.io/api/v1/people-traffic/?format=json&page_size=2
:
HTTP 200 OK
Allow: GET, POST, DELETE, OPTIONS
Content-Type: application/json
Vary: Accept
{
"count": 3,
"next": null,
"previous": null,
"results": [
{
"url": "https://api.datawiz.io/api/v1/people-traffic/123/",
"traffic_id": "123",
"shop_id": "157",
"shop_url": "https://api.datawiz.io/api/v1/shops/157/",
"date": "2018-04-11T01:00:00",
"qty": 10
},
{
"url": "https://api.datawiz.io/api/v1/people-traffic/124/",
"traffic_id": "124",
"shop_id": "157",
"shop_url": "https://api.datawiz.io/api/v1/shops/157/",
"date": "2018-04-11T01:00:00",
"qty": 10
},
{
"url": "https://api.datawiz.io/api/v1/people-traffic/125/",
"traffic_id": "125",
"shop_id": "157",
"shop_url": "https://api.datawiz.io/api/v1/shops/157/",
"date": "2018-04-11T01:00:00",
"qty": 10
}
]
}
У випадку виникнення помилки сервер повертає відповідь із відповідним статусом, а також повідомленням про помилку, записану в ключі 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/people-traffic/?format=json
-
.json
- Взаємодіяти з сервером в форматі JSON -
.api
- Взаємодіяти з сервером в форматі HTML (тестова платформа)
-
Format = json
- взаємодіяти з сервером в форматі JSON -
Format = api
- взаємодіяти з сервером в форматі HTML (тестова платформа)
В запиті передається JSON-об'єкт, який описує трафік. Важливі три поля: traffic_id
, shop_id
,date
.
Приклад коректних запитів на додавання нового трафіку:
POST http://api.datawiz.io/api/v1/people-traffic/?format=json
{
"traffic_id": "124",
"shop_id": "157",
"date": "2018-04-11T01:00:00",
"qty": 10
}
При коректній обробці запиту сервер повертає код статусу 201 статус створення об'єкта.
Приклад відповіді сервера:
HTTP 201 CREATED
Content-Type: application / json
Vary: Accept
Location: http://api.datawiz.io/api/v1/people-traffic/
Allow: GET, POST, HEAD, OPTIONS
{
"created": 1,
"updated": 0
}
Не можна додати на сервер такий трафік, якщо він вже існує з таким ідентифікатором traffic_id
,
і магазином shop_id
У випадку виникнення помилки сервер повертає відповідь із відповідним статусом, а також повідомленням про помилку, записаним навпроти імені поля, з яким ця помилка пов'язана. Якщо помилка стосується не визначеного поля, а всього об'єкту, то повідомлення про помилку буде записано навпроти ключа non_field_errors
.
ПРИМІТКА. Кожне повідомлення про помилку являє собою * колекцію * ( масив ) рядків символів.
Приклад відповіді сервера при виникненні помилки (поле traffic_id
передано порожнім):
HTTP 400 BAD REQUEST
Content-Type: application/json
Vary: Accept
Allow: GET, POST, HEAD, OPTIONS
{
"traffic_id": [
"This field is required."
]
}
При виконанні даної команди повертається така JSON-структура:
OPTIONS /api/v1/people-traffic/
HTTP 200 OK
Allow: GET, PUT, PATCH, DELETE, OPTIONS
Content-Type: application/json
Vary: Accept
{
"name": "People Traffic Instance",
"description": "",
"renders": [
"application/json",
"text/html"
],
"parses": [
"application/json",
"application/x-www-form-urlencoded",
"multipart/form-data"
],
"actions": {
"PUT": {
"url": {
"type": "string",
"required": false,
"read_only": true,
"label": "Url"
},
"traffic_id": {
"type": "string",
"required": true,
"read_only": false,
"label": "Traffic id"
},
"shop_id": {
"type": "integer",
"required": true,
"read_only": false,
"label": "Shop id"
},
"shop_url": {
"type": "integer",
"required": false,
"read_only": true,
"label": "Shop url"
},
"date": {
"type": "datetime",
"required": true,
"read_only": false,
"label": "Date"
},
"qty": {
"type": "integer",
"required": true,
"read_only": false,
"label": "Qty"
}
}
}
}