Rest API Список фото товарів - datawizio/pythonAPI GitHub Wiki
З допомогою ресурсу /product-photo/
можна завантажити фото для товарів .
Назва поля | Тип поля | розмір | Обов'язково | Тільки читання | Примітка |
---|---|---|---|---|---|
product_url |
url | ні | так | посилання на товар | |
product_id |
рядок | 50 | так | ні | ідентифікатор товару |
photo |
рядок | 200 | так | ні | посилання на фото товару |
Для управління ресурсом /product-photo/
підтримуються наступні команди:
-
GET
- отримати одну сторінку колекції -
POST
- завантажити документи на повернення товару -
OPTIONS
- мета-інформація по структурі об'єкта -
HEAD
- аналогGET
, але повертається тільки заголовок відповіді
Вид команди: GET http://api.datawiz.io/api/v1/product-photo/
-
.json
- Отримати відповідь з серверу в форматі JSON -
.api
- Отримати відповідь з серверу в форматі HTML (тестова платформа)
-
format = json | api
- аналог вищевказаних суфіксів -
page_size = nn
- встановити розмір сторінки рівнийnn
об'єктів -
page = n
- завантажити сторінкуn
-
search = text
- відображати тільки об'єкти, в поліname
яких знайдено "text" -
ordering = name | identifier
- сортувати по полю в алфавітному порядку (від меншого - до більшого) -
ordering = -name | -identifier
- сортувати по полю в зворотньому порядку
Об'єкт "колекція" складається з чотирьох полів (count
, next
, previous
, results
).
Приклад пустої колекції, отриманої в результаті запиту:
GET https://api.datawiz.io/api/v1/product-photo/
{
"count": 0,
"next": null,
"previous": null,
"results": []
}
Приклад колекції з 2-х елементів:
GET https://api.datawiz.io/api/v1/product-photo/
:
HTTP 200 OK
Content-Type: application/json
Vary: Accept
Allow: GET, HEAD, OPTIONS
{
"product_url": "http://api.datawiz.io/api/v1/products/cb2084aa-4644-11e5-80d8-a01d4897e530/",
"product_id": "cb2084aa-4644-11e5-80d8-a01d4897e530",
"photo": null
},
{
"product_url": "http://api.datawiz.io/api/v1/product-photo/e2df0ccd-5489-11e6-a618-e03f4978a152/",
"product_id": "e2df0ccd-5489-11e6-a618-e03f4978a152",
"photo": null
}
У випадку виникнення помилки сервер повертає відповідь з відповідним статусом, а також повідомлення про помилку, записаним у ключі detail
і/або в полі http.response.content
:
HTTP 404 NOT FOUND
Content-Type: application/json
Vary: Accept
Allow: GET, HEAD, OPTIONS, PATCH
{
"detail": "Not found"
}
Вид команди: POST http://api.datawiz.io/api/v1/product-photo/
Існують декілька варіантів для завантаження фото товару на сервіс. Перший варіант передбачає безпосереднє завантаження фото за допомогою Multipart-форми. Інший варіант дозволяє вказувати посилання на фото, в такому випадку сервіс сам отримає зображення по вказаній адресі
Приклад запиту на завантаження фото для товару з ідентифікатором PRODUCT-IDENTIFIER
:
POST http://api.datawiz.io/api/v1/product-photo/
POST /api/v1/product-photo/ HTTP/1.1
Host: api.datawiz.io
Authorization: Bearer c3VwcG9ydF9ffs6
Cache-Control: no-cache
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="product_id"
PRODUCT-IDENTIFIER
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="photo"; filename="photo.jpg"
Content-Type:
<< product photo binary data >>
------WebKitFormBoundary7MA4YWxkTrZu0gW--
Приклад запиту на додавання декількох фото - photo.jpg для товару з ідентифікатором PRODUCT-1
та photo2.jpg для товару PRODUCT-2
POST /api/v1/product-photo/ HTTP/1.1
Host: api.datawiz.io
Authorization: Bearer c3VwcG9ydF9ffs6
Cache-Control: no-cache
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="product_id"
PRODUCT-1
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="photo"; filename="photo.jpg"
Content-Type:
<< product1 photo binary data >>
------WebKitFormBoundary7MA4YWxkTrZu0gW
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="product_id"
PRODUCT-2
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="photo"; filename="photo2.jpg"
Content-Type:
<< product2 photo binary data >>
------WebKitFormBoundary7MA4YWxkTrZu0gW--
Приклад запиту на завантаження фото для товару з ідентифікатором PRODUCT-IDENTIFIER в JSON-форматі
POST
{
POST /api/v1/product-photo/
{
"product_id": "PRODUCT-IDENTIFIER",
"photo": "https://google.com/logo.jpg"
}
Приклад запиту на додавання декількох фото в форматі JSON
POST /api/v1/product-photo/
[
{
"product_id": "PRODUCT-IDENTIFIER",
"photo": "https://google.com/logo.jpg"
},
{
"product_id": "PRODUCT-IDENTIFIER-2",
"photo": "https://google.com/logo2.jpg"
}
]
При коректній обробці запиту сервер повертає код статусу 201 і статус створення об'єкта.
Приклад відповіді сервера:
HTTP 201 CREATED
Content-Type: application/json
Vary: Accept
Location: http://api.datawiz.io/api/v1/product-photo/123/
Allow: GET, POST, HEAD, OPTIONS
{
"updated": 1,
"inserted": 0
}
У випадку виникнення помилки сервер повертає відповідь із відповідним статусом, а також повідомленням про помилку, записаним навпроти імені поля, з яким ця помилка пов'язана. Якщо помилка стосується не окремого поля, а всього об'єкта, то повідомлення про помилку буде записано навпроти ключа non_field_errors
.
ПРИМІТКА. Кожне повідомлення про помилку являє собою колекцію (масив) рядкових символів.
Приклад відповіді сервера при виникненні помилки (товар з ідентифікатором a123sd-a34-shj4544
не знайдено):
HTTP 400 BAD REQUEST
Content-Type: application/json
Vary: Accept
Allow: GET, POST, HEAD, OPTIONS
{
"product_id": "product with old_id a123sd-a34-shj4544 not found"
}