Rest API Список поставщиков товара - datawizio/pythonAPI GitHub Wiki
Поставщики товара - это список всех поставщиков, с которыми были или ведутся торговые отношения. С помощью ресурса /suppliers/
можно получить доступ к списку поставщиков товаров. А также добавлять в справочник новых поставщиков
Название поля | Тип поля | размер | Обязательно | Только чтение | Примечание |
---|---|---|---|---|---|
supplier_id |
строка | 100 | да | нет | идентификатор поставщика, должен соответствовать id поставщика товара |
name |
строка | 200 | да | нет | имя поставщика |
supplier_code |
строка | 50 | нет | нет | код поставщика |
phone |
строка | 25 | нет | нет | контактный номер телефона поставщика |
commodity_credit_days |
число | нет | да | количество дней отложенного платежа | |
address |
строка | 50 | нет | нет | Адрес поставщика |
Для управления ресурсом /suppliers/
поддерживаются следующие команды:
-
GET
- получить одну страницу коллекции -
POST
- загрузить информацию о поставщиках -
OPTIONS
- мета-информация по структуре объекта -
HEAD
- аналогGET
, но возвращается только заголовок ответа
Вид команды: GET http://api.datawiz.io/api/v1/suppliers
-
.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 http://api.datawiz.io/api/v1/suppliers/.json/?search=unknown-string
{
"count": 0,
"next": null,
"previous": null,
"results": []
}
Пример коллекции из 2-х элементов:
GET http://api.datawiz.io/api/v1/suppliers/?format=api&page_size=2
:
HTTP 200 OK
Content-Type: application/json
Vary: Accept
Allow: GET, HEAD, OPTIONS
{
"count": 11,
"next": "http://api.datawiz.io/api/v1/suppliers/?page=2&page_size=2&format=api",
"previous": null,
"results": [
{
"supplier_id": "supplier-1",
"name": "Vasya",
"supplier_code": "11111",
"phone": null,
"commodity_credit_days": 2,
"address": null
},
{
"supplier_id": "supplier-2",
"name": "Roma",
"supplier_code": "12345",
"phone": null,
"commodity_credit_days": 0,
"address": 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/suppliers/?format=json
-
.json
- получить ответ с сервера в формате JSON -
.api
- получить ответ с сервера в формате HTML (тестовая платформа)
-
format = json | api
- аналог вышеуказанных суффиксов
В запросе передается JSON-объект типа словарь (dictionary), который описывает информацию о поставщиках. Важные поля: supplier_id
, name
. Последовательность полей не принципиальна.
Пример запроса на загрузку информации об поставщиках товара:
POST http://api.datawiz.io/api/v1/suppliers/.json
{
"supplier_id": "supplier-1",
"name": "Vasya",
"supplier_code": "11111",
"phone": null,
"commodity_credit_days": 0,
"address": null
}
При корректной обработке запроса сервер возвращает код статуса 201 и статус создания объекта.
Пример ответа сервера:
HTTP 201 CREATED
Content-Type: application/json
Vary: Accept
Location: http://api.datawiz.io/api/v1/suppliers/124/
Allow: GET, POST, HEAD, OPTIONS
{
"updated": 0,
"inserted": 1
}
- Если объект с идентификатором
supplier_id
уже существует на сервере, то указанный запрос заменит объект на сервере (replace) без предупреждения. - Нельзя добавить на сервер объект, если нет товара с указанным идентификатором
supplier_id
В случае ошибки сервер возвращает ответ с соответствующим статусом, а также сообщением об ошибке, записанным напротив имени поля, с которым эта ошибка связана. Если ошибка касается не отдельного поля, а всего объекта, то сообщение об ошибке будет записано напротив ключа non_field_errors
.
ПРИМЕЧАНИЕ. Каждое сообщение об ошибке представляет собой коллекцию (массив) строчных символов.
Пример ответа сервера при возникновении ошибки (поле name
передано пустым):
HTTP 400 BAD REQUEST
Content-Type: application/json
Vary: Accept
Allow: GET, POST, HEAD, OPTIONS
{
"name": [
"This field is required."
]
}
При выполнении данной команды возвращается такая JSON-структура:
OPTIONS /api/v1/suppliers/
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"name": "Supplier List",
"description": "this is my text. You can see this text on the REST-page",
"renders": [
"application/json",
"text/html"
],
"parses": [
"application/json",
"application/x-www-form-urlencoded",
"multipart/form-data"
],
"actions": {
"POST": {
"supplier_id": {
"type": "string",
"required": true,
"read_only": false,
"label": "Supplier id",
"max_length": 12
},
"name": {
"type": "string",
"required": true,
"read_only": false,
"label": "Name",
"max_length": 200
},
"supplier_code": {
"type": "string",
"required": false,
"read_only": false,
"label": "Supplier code",
"max_length": 50
},
"phone": {
"type": "string",
"required": false,
"read_only": false,
"label": "Phone",
"max_length": 25
},
"commodity_credit_days": {
"type": "integer",
"required": false,
"read_only": false,
"label": "Commodity credit days"
},
"address": {
"type": "string",
"required": false,
"read_only": false,
"label": "Address",
"max_length": 50
}
}
}
}