Rest API Список чеків - datawizio/pythonAPI GitHub Wiki
- Список чеків* (
receipts
) - це список касових чеків. Кожний чек включає в себе список товарних позицій. З допомогою ресурсу/receipts/
можна отримати доступ до списку чеків, а також додавати нові чеки.
Назва поля | Тип поля | розмір | Обов'язково | Тільки читання | Примітка |
---|---|---|---|---|---|
url |
URL | ні | так | url цього об'єкта | |
date |
datetime | 200 | так | ні | дата і час реєстрації чека касовим апаратом |
order_id |
рядок | 200 | так | ні | довільний ідентифікатор чека (унікальний у межах дня і касового терміналу, де був оплачений) |
shop_id |
рядок | 50 | ні | так | ідентифікатор магазину (повинен відповідати id магазину з клієнтської бухгалтерської програми) |
shop_url |
URL | ні | так | url ідентифікатора магазину | |
terminal_id |
рядок | 50 | так | ні | ідентифікатор касового терміналу |
terminal_url |
URL | ні | так | url ідентифікатора касового терміналу | |
loyalty_id |
рядок | 50 | ні | ні | ідентифікатор програми лояльності |
loyalty_url |
URL | ні | так | url ідентифікатора програми лояльності | |
contractor_id |
рядок | 50 | ні | ні | ідентифікатор контрагента |
contractor_url |
URL | ні | так | url ідентифікатора контрагента | |
cashier_id |
рядок | 50 | ні | ні | ідентифікатор касира |
cashier_url |
URL | ні | так | url ідентифікатора касира | |
cartitems |
список | ні | ні | масив об'єктів типу список позицій (cartitems ) |
|
marker |
список | ні | ні | список міток чека |
В кожному чеку міститься список з 0 і більше товарних позицій такої структури:
Назва поля | Тип поля | розмір | Обов'язково | Тільки читання | Примітка |
---|---|---|---|---|---|
url |
URL | ні | так | url цього об'єкта | |
order_no |
ціле | так | ні | довільний номер товарної позиції в чеку (унікальне ціле число в межах даного чека) | |
product_id |
рядок | 200 | так | ні | ідентифікатор товару з Довідника по товарах (див.[/products/ ]) |
product_url |
URL | ні | так | url ідентифікатора товару | |
base_price |
число | ні | ні | ціна товару без надання знижок | |
price |
число | ні | ні | реальна ціна позиції (якщо це поле відсутнє, чи price *qty <> total_price , то вираховується, як total_price /qty ) |
|
qty |
число | так | ні | кількість | |
total_price |
число | так | ні | загальна вартість позиції (= ціна * кількість) |
З ресурсом /receipts/
підтримуються наступні команди:
- GET
- отримати одну сторінку колекції
- POST
- додати новий чек або список чеків
- OPTIONS
- мета-інформація по структурі об'єкта
- HEAD
- аналог GET
, але повертається тільки заголовок відповіді
Вид команди: GET http://api.datawiz.io/api/v1/receipts/
-
.json
- Отримати відповідь з сервера в форматі JSON -
.api
- Отримати відповідь з сервера в форматі HTML (тестова платформа)
-
Format = json | api
- аналог вищевказаних суфіксів -
Page_size = nn
- встановити розмір сторінки рівнийnn
об'єктів -
Page = n
- завантажити сторінкуn
-
Min_date = YYYY-MM-DD
- повертати тільки чеки з датою більше-рівне YYYY-MM-DD -
Max_date = YYYY-MM-DD
- повертати тільки чеки з датою менше YYYY-MM-DD -
Ordering = url | date | order_id
- сортувати по полю в сторону зростання -
Ordering = -url | -date | order_id
- сортувати по полю в зворотному порядку
Об'єкт "колекція" із чотирьох полів (count
, next
, previous
, results
).
Приклад порожньої колекції, отриманої в результаті запиту:
GET http://api.datawiz.io/api/v1/receipts/?max_date=0000-00-00
{
"count": 0,
"next": null,
"previous": null,
"results": []
}
Приклад колекції із 2-х елементів:
GET http://api.datawiz.io/api/v1/receipts/?format=json&page_size=2
:
HTTP 200 OK
Content-Type: application/json
Vary: Accept
Allow: GET, POST, HEAD, OPTIONS
{
"count": 362203,
"next": "http://api.datawiz.io/api/v1/receipts/?page=2&page_size=2",
"previous": null,
"results": [
{
"url": "http://api.datawiz.io/api/v1/receipts/1810894/",
"date": "2013-04-04T00: 00: 00",
"order_id": "5281KASSA3",
"markers": [],
"cartitems": [
{
"url": "http://api.datawiz.io/api/v1/receipts/1810894/cartitems/9873504/",
"product_id": "6316",
"product_url": "http://api.datawiz.io/api/v1/products/6316/",
"price": "30.5625",
"qty": "0.1600",
"total_price": "4.8900"
}
{
"url": "http://api.datawiz.io/api/v1/receipts/1810894/cartitems/9875943/",
"product_id": "7561",
"product_url": "http://api.datawiz.io/api/v1/products/7561/",
"price": "27.2619",
"qty": "0.3360",
"total_price": "9.1600"
}
]
}
{
"url": "http://api.datawiz.io/api/v1/receipts/1810895/",
"date": "2013-04-04T00: 00: 00",
"order_id": "5282KASSA3",
"markers": ["оптовий"],
"cartitems": [
{
"url": "http://api.datawiz.io/api/v1/receipts/1810895/cartitems/9445051/",
"product_id": "1292",
"product_url": "http://api.datawiz.io/api/v1/products/1292/",
"price": "3.5400",
"qty": "1.0000",
"total_price": "3.5400"
}
{
"url": "http://api.datawiz.io/api/v1/receipts/1810895/cartitems/9611714/",
"product_id": "11495",
"product_url": "http://api.datawiz.io/api/v1/products/11495/",
"price": "12.5000",
"qty": "1.0000",
"total_price": "12.5000"
}
{
"url": "http://api.datawiz.io/api/v1/receipts/1810895/cartitems/10043536/",
"product_id": "10965",
"product_url": "http://api.datawiz.io/api/v1/products/10965/",
"price": "3.8900",
"qty": "1.0000",
"total_price": "3.8900"
}
]
}
]
}
У випадку виникнення помилки сервер повертає відповідь із відповідним статусом, а також повідомленням про помилку, записану в ключі 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/receipts/?format=json
-
.json
- Взаємодіяти з сервером в форматі JSON -
.api
- Взаємодіяти з сервером в форматі HTML (тестова платформа)
-
Format = json
- взаємодіяти з сервером в форматі JSON -
Format = api
- взаємодіяти з сервером в форматі HTML (тестова платформа)
В запиті передається JSON-об'єкт, який описує чек. Важливі два поля: date
i order_id
. Поле cartitems
, надає масив позицій не обов'язковий до заповнення (порожній чек).
Одночасно, в чеку можуть бути присутніми одна чи більше позицій (cartitems
), в цьому випадку в кожній позиції повинні бути заповнені обов'язкові поля: ідентифікатор товару (product_id
) з Довідника по товарах (див.ресурс /products /), кількість (qty
) та загальна вартість позиції (total_price
). Поле "Ціна товару" - опційна та вираховується як total_price
/qty
.
Також, при неохідності, в чек можна додати одну або кілька міток (поле marker
), які будуть використовуватися при аналітиці. Мітки створюються за допомогою ресурсу Мітки чека
Приклад коректних запитів на додавання нового чека:
POST http://api.datawiz.io/api/v1/receipts/.json
- порожній чек (поле cartitems
відсутнє)
{
"date": "2014-06-06T00:00:00",
"order_id": "1000"
}
POST http://api.datawiz.io/api/v1/receipts/.json
- порожній чек (поле cartitems
присутній - порожній масив)
{
"date": "2014-06-06T00:00:00",
"order_id": "1000",
"marker": [],
"cartitems": []
}
POST http://api.datawiz.io/api/v1/receipts/.json
- чек з двома позиціями, помічений як оптовий
{
"date": "2014-04-04T12:30:45",
"order_id": "KASSA3-2222",
"marker": ["bulk_marker_id"],
"cartitems": [
{
"product_id": "6316",
"price": "30.5625",
"qty": "0.1600",
"total_price": "4.8900"
}
{
"product_id": "7561",
"price": "27.2619",
"qty": "0.3360",
"total_price": "9.1600"
}
]
}
При коректній обробці запиту сервер повертає код статусу 201 та знову створений об'єкт із заповненим полем url
.
Приклад відповіді сервера: Створений порожній чек:
HTTP 201 CREATED
Content-Type: application / json
Vary: Accept
Location: http://api.datawiz.io/api/v1/receipts/2173120/
Allow: GET, POST, HEAD, OPTIONS
{
"url": "http://api.datawiz.io/api/v1/receipts/2173120/",
"date": "2014-07-03T10: 06: 30",
"order_id": "TEST-RECEIPT-777",
"cartitems": []
}
Створений чек з 2 позиціями:
HTTP 201 CREATED
Content-Type: application/json
Vary: Accept
Location: http://api.datawiz.io/api/v1/receipts/2173121/
Allow: GET, POST, HEAD, OPTIONS
{
"url": "http://api.datawiz.io/api/v1/receipts/2173121/",
"date": "2014-07-03T10: 06: 30",
"order_id": "TEST-RECEIPT-7777",
"cartitems": [
{
"url": "http://api.datawiz.io/api/v1/receipts/2173121/cartitems/10488145/",
"product_id": "6316",
"product_url": "http://api.datawiz.io/api/v1/products/6316/",
"price": "30.5625",
"qty": "0.1600",
"total_price": "4.8900"
}
{
"url": "http://api.datawiz.io/api/v1/receipts/2173121/cartitems/10488144/",
"product_id": "7561",
"product_url": "http://api.datawiz.io/api/v1/products/7561/",
"price": "27.2619",
"qty": "0.3360",
"total_price": "9.1600"
}
]
}
- Не можна додати на сервер чек, якщо вже існує чек з таким самим
date
+order_id
-
total_price
повинен бути рівнимprice
*qty
. Якщо це не так, то полеprice
фіксується якtotal_price
/qty
У випадку виникнення помилки сервер повертає відповідь із відповідним статусом, а також повідомленням про помилку, записаним навпроти імені поля, з яким ця помилка пов'язана. Якщо помилка стосується не визначеного поля, а всього об'єкту, то повідомлення про помилку буде записано навпроти ключа non_field_errors
.
ПРИМІТКА. Кожне повідомлення про помилку являє собою * колекцію * ( масив ) рядків символів.
Приклад відповіді сервера при виникненні помилки (поле order_id
передано порожнім):
HTTP 400 BAD REQUEST
Content-Type: application/json
Vary: Accept
Allow: GET, POST, HEAD, OPTIONS
{
"order_id": [
"This field is required."
]
}
При виконанні даної команди повертається така JSON-структура:
OPTIONS /api/v1/receipts/
HTTP 200 OK
Content-Type: application/json
Vary: Accept
Allow: GET, POST, HEAD, OPTIONS
{
"name": "Receipt List",
"description": "",
"renders": [
"application/json",
"text/html"
],
"parses": [
"application / json",
"application / x-www-form-urlencoded",
"multipart / form-data"
],
"actions": {
"POST": {
"url": {
"type": "field",
"required": false,
"read_only": true
}
"date": {
"type": "datetime",
"required": true,
"read_only": false
}
"order_id": {
"type": "string",
"required": true,
"read_only": false,
"max_length": 200
}
"cartitems": {
"url": {
"type": "field",
"required": false,
"read_only": true,
"label": "Url"
}
"product_id": {
"type": "string",
"required": true,
"read_only": false,
"label": "Product id",
"max_length": 200
}
"product_url": {
"type": "field",
"required": false,
"read_only": true,
"label": "Product url"
}
"price": {
"type": "decimal",
"required": true,
"read_only": false,
"label": "price"
}
"qty": {
"type": "decimal",
"required": true,
"read_only": false,
"label": "qty"
}
"total_price": {
"type": "decimal",
"required": true,
"read_only": false,
"label": "total price"
}
}
}
}
}
Скориставшись ресурсом /receipts/{receipt_id}
можна отримати з сервера, модифікувати повністю чи частково, а також видалити вибраний чек. Для вибору потрібного чека необхідно зробити запит по адресу із поля url
вибраного чека. Перелік існуючих чеків і їх ідентифікаторів можна отримати, скориставшись командою 'GET /receipts/' (детальніше див.розділ "[2. Ресурс /receipts/
(Список чеків, Колекція)]")
Назва поля | Тип поля | розмір | Обов'язково | Тільки читання | Примітка |
---|---|---|---|---|---|
url |
URL | ні | так | url цього об'єкта | |
date |
datetime | 200 | так | ні | дата і час реєстрації чека касовим апаратом |
order_id |
рядок | 200 | так | ні | довільний ідентифікатор чека (унікальний у межах дня і касового терміналу, де був оплачений) |
shop_id |
рядок | 50 | ні | так | ідентифікатор магазину (повинен відповідати id магазина із клієнтської бухгалтерської програми) |
shop_url |
URL | ні | так | url ідентифікатора магазину | |
terminal_id |
рядок | 50 | так | ні | ідентифікатор касового терміналу |
terminal_url |
URL | ні | так | url ідентифікатора касового терміналу | |
loyalty_id |
рядок | 50 | ні | ні | ідентифікатор програми лояльності |
loyalty_url |
URL | ні | так | url ідентифікатора програми лояльності | |
cashier_id |
рядок | 50 | ні | ні | ідентифікатор касира |
cashier_url |
URL | ні | так | url ідентифікатора касира | |
marker |
список | ні | ні | список міток чека | |
cartitems |
список | ні | ні | масив об'єктів типу список позицій (cartitems ) |
Назва поля | Тип поля | розмір | Обов'язково | Тільки читання | Примітка |
---|---|---|---|---|---|
url |
URL | ні | так | url цього об'єкта | |
order_no |
ціле | так | ні | довільний номер товарної позиції в чеку (унікальне ціле число в межах даного чека) | |
product_id |
рядок | 200 | так | ні | ідентифікатор товару з Довідника по товарах (див.[/products/ ]) |
product_url |
URL | ні | так | url ідентифікатора товару | |
base_price |
число | ні | ні | ціна товару без надання знижок | |
price |
число | ні | ні | реальна ціна позиції (якщо це поле відсутнє, чи price *qty <> total_price , то вираховується, як total_price /qty ) |
|
qty |
число | так | ні | кількість | |
total_price |
число | так | ні | загальна вартість позиції (= ціна * кількість) |
З ресурсом /receipts/{receipt_id}
підтримують наступні команди:
- GET
- отримати чек, визначений з допомогою ідентифікатора {receipt_id}
- PUT
- * повністю * замінити чек на сервері новим
- PATCH
- змінити значення * окремих * полів об'єкта
- DELETE
- вилучити чек
- OPTIONS
- мета-інформація по структурі об'єкта
- HEAD
- аналог GET
, але повертається тільки заголовок відповіді
16.2.1. GET /receipts/{receipt_id}/
- отримати чек, визначений з допомогою ідентифікатора {receipt_id}
Вид команди: GET http://api.datawiz.io/api/v1/receipts/12345
- отримати чек з ідентифікатором {receipt_id} = 12345
-
.json
- Отримати відповідь з сервера в форматі JSON -
.api
- Отримати відповідь з сервера в форматі HTML (тестова платформа)
-
format=json|api
- встановити формат даних. Аналог вищевказаних суфіксів
При відправлені на сервер команди GET /receipts/{receipt_id}
з порожнім тілом запиту сервер повертає об'єкт заданої структури в форматі JSON чи повідомлення про помилку.
Наприклад, GET http://api.datawiz.io/api/v1/receipts/1710900/.json
:
HTTP 200 OK
Content-Type: application / json
Vary: Accept
Allow: GET, PUT, DELETE, HEAD, OPTIONS, PATCH
{
"url": "http://api.datawiz.io/api/v1/receipts/1810900/",
"date": "2013-04-04T00: 00: 00",
"order_id": "5287KASSA3",
"markers": [],
"cartitems": [
{
"url": "http://api.datawiz.io/api/v1/receipts/1810900/cartitems/10209184/",
"product_id": "8277",
"product_url": "http://api.datawiz.io/api/v1/products/8277/",
"price": "2.9300",
"qty": "1.0000",
"total_price": "2.9300"
}
{
"url": "http://api.datawiz.io/api/v1/receipts/1810900/cartitems/10318560/",
"product_id": "6212",
"product_url": "http://api.datawiz.io/api/v1/products/6212/",
"price": "8.5000",
"qty": "1.0000",
"total_price": "8.5000"
}
{
"url": "http://api.datawiz.io/api/v1/receipts/1810900/cartitems/10374429/",
"product_id": "2966",
"product_url": "http://api.datawiz.io/api/v1/products/2966/",
"price": "1.9800",
"qty": "1.0000",
"total_price": "1.9800"
}
]
}
У випадку виникнення помилки серверу повертає відповідь з відповідним статусом, а також повідомленням про помилку, записану в ключі detail
:
HTTP 404 NOT FOUND
Content-Type: application / json
Vary: Accept
Allow: GET, PUT, DELETE, HEAD, OPTIONS, PATCH
{
"detail": "Not found"
}
Вид команди: PUT http://api.datawiz.io/api/v1/receipts/12345/.json
- замінити об'єкт з {receipt_id}=12345
на інший
-
.json
- Взаємодіяти з сервером в форматі JSON -
.api
- Взаємодіяти з сервером в форматі HTML (тестова платформа)
-
format=json
- взаємодіяти з сервером в форматі JSON -
format=api
- взаємодіяти з сервером в форматі HTML (тестова платформа)
В запиті передається JSON-об'єкт з новими значеннями чека.
Важливі два поля: date
і order_id
. Поле cartitems
, являє собою масив позицій, не обов'язково для заповнення (порожній чек).
Одночасно, в чеку можуть бути присутніми одна чи більше позицій (cartitems
), в цьому випадку у кожній позиції повинні бути заповненими обов'язкові поля: ідентифікатор товару (product_id
) з * Довідника по товарах * (див. ресурс /products/
), кількість (qty
) і загальна вартість позиції (total_price
). Поле "Ціна товару" - опційна та вираховується як total_price
/qty
.
Приклад запиту на заміну об'єкта в Довідник по товарах:
PUT http://api.datawiz.io/api/v1/receipts/123456-TEST/.json
{
"date": "2013-04-04T12: 30: 00",
"order_id": "KASSA3-12345",
"cartitems": [
{
"product_id": "8277",
"qty": 1.0000,
"total_price": 2.9300
}
{
"product_id": "6212",
"qty": 1.0000,
"total_price": 8.5000
}
{
"product_id": "2966",
"qty": 1.0000,
"total_price": 1.9800
}
]
}
При коректній обробці запиту сервер повертає код статусу 200 і змінений об'єкт із заповненим полем url
.
Приклад відповіді сервера:
HTTP 200 OK
Content-Type: application/json
Vary: Accept
Allow: GET, PUT, DELETE, HEAD, OPTIONS, PATCH
{
"url": "http://api.datawiz.io/api/v1/receipts/1810900/",
"date": "2013-04-04T12: 30: 00",
"order_id": "KASSA3-12345",
"markers": [],
"cartitems": [
{
"url": "http://api.datawiz.io/api/v1/receipts/1810900/cartitems/10209184/",
"product_id": "8277",
"product_url": "http://api.datawiz.io/api/v1/products/8277/",
"price": "2.9300",
"qty": "1.0000",
"total_price": "2.9300"
}
{
"url": "http://api.datawiz.io/api/v1/receipts/1810900/cartitems/10318560/",
"product_id": "6212",
"product_url": "http://api.datawiz.io/api/v1/products/6212/",
"price": "8.5000",
"qty": "1.0000",
"total_price": "8.5000"
}
{
"url": "http://api.datawiz.io/api/v1/receipts/1810900/cartitems/10374429/",
"product_id": "2966",
"product_url": "http://api.datawiz.io/api/v1/products/2966/",
"price": "1.9800",
"qty": "1.0000",
"total_price": "1.9800"
}
]
}
- Не можна додати на сервер чек, якщо вже існує чек з таким самим
date
+order_id
-
Total_price
повинен бути рівнимprice
*qty
. Якщо це не так, то полеprice
фіксується якtotal_price
/qty
У випадку виникнення помилки сервер повертає відповідь із відповідним статусом, а також повідомленням про помилку, записаним навпроти імені поля, з яким ця помилка пов'язана. Якщо помилка стосується не окремого поля, а всього об'єкта, то повідомлення про помилку буде записано навпроти ключа non_field_errors
.
ПРИМІТКА: Кожне повідомлення про помилку являє собою * колекцію * ( масив ) рядкових символів.
Приклад відповіді сервера при виникненні помилки (поле order_id
передано порожнім):
HTTP 400 BAD REQUEST
Content-Type: application/json
Vary: Accept
Allow: GET, POST, HEAD, OPTIONS
{
"order_id": [
"This field is required."
]
}
Команда PATCH
використовується, якщо потрібно змінити окремі поля об'єкта. Команда PATCH
у всьому схожа на команду PUT
, тільки в ній можна вказувати не всі об'єкти, а тільки ті поля, які необхідно змінити.
Вид команди: PATCH http://api.datawiz.io/api/v1/receipts/12345/.json
- замінити окремі поля об'єкта з receipt_id = 12345
на інші
-
.json
- Взаємодіяти з сервером в форматі JSON -
.api
- Взаємодіяти з сервером в форматі HTML (тестова платформа)
-
format=json
- взаємодіяти з сервером в форматі JSON -
format=api
- взаємодіяти з сервером в форматі HTML (тестова платформа)
В запиті передається JSON-об'єкт з новим значенням окремих полів об'єкта
Важливі два поля: date
i order_id
. Поле cartitems
, яке являє собою масив позицій, не обов'язкових до заповнення (порожній чек).
Одночасно, в чеку можуть бути присутніми одна чи більше позицій (cartitems
), в цьому випадку в кожній позиції повинні бути заповнені обов'язкові поля: ідентифікатор товару(product_id
) з * Довідника по товарах *(див.ресурс /products/), кількість (qty
) і загальна вартість позиції (total_price
). Поле "Ціна товару" - опційна та вираховується як total_price
/qty
.
ПРИМІТКА! Поле cartitems
сприймається як єдиний нероздільний об'єкт. Таким чином дана команда не має можливості змінити окрему позицію, додати одну чи видалити, а тільки повністю видалити всі існуючі позиції по чеку і додати всі нові. Якщо виникає необхідність модифікувати позиції в чеку (додавати, модифікувати, видаляти), - скористайтесь ресурсом /receipt/{receipt_id}/cartitems/
Приклад запиту на заміну значення поля date
для чека з {receipt_id}=123456
:
PUT http: //api.datawiz.io/api/v1/receipts/123456/.json
{
"date": "2013-04-04T12: 30: 00"
}
При коректній обробці запиту сервер повертає код статусу 200 і змінений об'єкт із заповненим полем url
.
Приклад відповіді сервера:
HTTP 200 OK
Content-Type: application / json
Vary: Accept
Allow: GET, POST, HEAD, OPTIONS
{
"url": "http://api.datawiz.io/api/v1/receipts/123456/",
"date": "2013-04-04T12:30:00",
"order_id": "RECEIPT-777",
"cartitems": []
}
При заміні не можна вказувати інший receipt_id
, якщо вже існує об'єкт з таким самим receipt_id
- При заміні не можна вказувати інші
date
таorder_id
, якщо вже існує чек з такими самимиdate
+order_id
-
total_price
повинен бути рівнимprice
*qty
. Якщо це не так, то полеprice
фіксується якtotal_price
/qty
У випадку виникнення помилки сервер повертає відповідь із відповідним статусом, а також повідомленням про помилку, записаним навпроти імені поля, з яким ця помилка пов'язана. Якщо помилка стосується не окремого поля, а всього об'єкта, то повідомлення про помилку буде записано навпроти ключа non_field_errors
.
ПРИМІТКА: Кожне повідомлення про помилку являє собою колекцію (масив) рядків символів.
Приклад відповіді сервера при виникненні помилки (поле qty
передано порожнім):
HTTP 400 BAD REQUEST
Content-Type: application/json
Vary: Accept
Allow: GET, PUT, DELETE, HEAD, OPTIONS, PATCH
{
"cartitems": [
{},
{},
{
"qty": [
"Quantity can not be empty or zero"
]
}
]
}
Команда DELETE
використовується для вилучення вказаного чека
Вид команди: DELETE http://api.datawiz.io/api/v1/receipts/12345/
- вилучити чек з receipt_id = 12345
-
.json
- Взаємодіяти з сервером в форматі JSON -
.api
- Взаємодіяти з сервером в форматі HTML (тестова платформа)
-
format = json
- взаємодіяти з сервером в форматі JSON -
format = api
- взаємодіяти з сервером в форматі HTML (тестова платформа)
В запиті нічого передавати не потрібно
При коректній обробці запиту сервер повертає код статусу 204 NO CONTENT
Приклад відповіді сервера:
HTTP 204 NO CONTENT
Content-Type: application/json
Vary: Accept
Allow: GET, PUT, DELETE, HEAD, OPTIONS, PATCH
- Ні
У випадку виникнення помилки серверу повертає відповідь з відповідним статусом, а також повідомленням про помилку, записану в ключі detail
:
HTTP 404 NOT FOUND
Content-Type: application/json
Vary: Accept
Allow: GET, PUT, DELETE, HEAD, OPTIONS, PATCH
{
"detail": "Not found"
}
При виконанні даної команди повертається така JSON-структура:
OPTIONS /api/v1/receipts/123456-NEW-ID/
HTTP 200 OK
Content-Type: application/json
Vary: Accept
Allow: GET, PUT, DELETE, HEAD, OPTIONS, PATCH
{
"name": "Receipt Instance",
"description": "this is my second text \ naaaaa",
"renders": [
"application/json",
"text/html"
],
"parses": [
"application/json",
"application/x-www-form-urlencoded",
"multipart / form-data"
],
"actions": {
"PUT": {
"url": {
"type": "field",
"required": false,
"read_only": true
}
"date": {
"type": "datetime",
"required": true,
"read_only": false
}
"order_id": {
"type": "string",
"required": true,
"read_only": false,
"max_length": 200
}
"cartitems": {
"url": {
"type": "field",
"required": false,
"read_only": true,
"label": "Url"
}
"product_id": {
"type": "string",
"required": true,
"read_only": false,
"label": "Product id",
"max_length": 200
}
"product_url": {
"type": "field",
"required": false,
"read_only": true,
"label": "Product url"
}
"price": {
"type": "decimal",
"required": false,
"read_only": false,
"label": "Price"
}
"qty": {
"type": "decimal",
"required": true,
"read_only": false,
"label": "qty"
}
"total_price": {
"type": "decimal",
"required": true,
"read_only": false,
"label": "total price"
}
}
}
}
}