Примеры запросов в REST API

Теги: REST API
Последние изменения: 31.07.2020

Получение информации о базе

Для получения информации по текущей базе нужно выполнить запрос:

GET /api/v1/BaseInfo

Ответ:

{
"@odata.context": "http://172.19.0.30:9000/MobileSMARTS/api/v1/$metadata#BaseInfo",
"id": "rtl15",
"name": "Магазин 15, Базовый",
"folder": "C:\ProgramData\Cleverence\Базы Mobile SMARTS\Магазин 15, Базовый",
"appId": "F42C7B5F-405C-4076-AE07-9348F189EE71",
"appName": "Магазин 15, Базовый",
"comment": null,
"allConnectionStrings": [
"https://172.19.0.30:10502/rtl15",
"Доступ к swagger:"
"https://172.19.0.30:10502/rtl15/swagger"
],
"appDescription": {
"appId": "F42C7B5F-405C-4076-AE07-9348F189EE71",
"appName": "Магазин 15, Базовый",
"desktopReqPayment": false,
"configId": "8DC2C8BA-77CE-46AD-93CB-6CFFCA7B96D7",
"serverModeSupported": true,
"onlineCallsSupported": false,
"batchModeSupported": true,
"appLink": "http://cleverence.ru/software/mobile-smarts/rtl15/",
"appSupportLink": "https://www.cleverence.ru/support/category:295/",
"aboutLicLink": "http://cleverence.ru/software/mobile-smarts/rtl15/#spec",
"appVersionsLink": "http://cleverence.ru/software/mobile-smarts/rtl15/#spec",
"comment": "Основная поставка Магазин 15",
"appVersion": "1.1.1.155",
"clientVersion": "3.0.0.100",
"panelVersion": "1.0",
"mainServerVersion": "1.0",
"appServerVersion": "3.0.0.2699",
"minPlatformVersion": "1.0",
"minPlatform35Version": "1.0"
},
"appInstanceSettings": {
"mode": "Server",
"hasServerAuth": false,
"serverSettings": {
"dataService": {
"enabled": true,
"port": 9000,
"useHttps": false,
"deviceAuth": false,
"passwordAuth": false
},
"printService": {
"enabled": false,
"port": 9001,
"useHttps": false,
"deviceAuth": false,
"passwordAuth": false
}
}
}
}

Группы пользователей

Работа с массивом

GET /api/v1/UserGroups

	 {
"@odata.context": "string",
"value": [
{
"id": "string",
"name": "string",
"documentTypeNames": [
"string"
],
": true,
"role": 0,
"serverSideInventory": true,
"autorunDocumentTypeName": "string",
"onStartHandlerName": "string",
"onFinishHandlerName": "string"
}
]
}

Работа с записями по идентификатору

POST /api/v1/UserGroups('{key}')

PUT /api/v1/UserGroups('{key}')

PATCH /api/v1/UserGroups('{key}')

DELETE /api/v1/UserGroups('{key}')

UserGroup {

}

Получение списка пользователей группы

GET /api/v1/UserGroups('{key}')/users

Пользователи

Работа с массивом

GET /api/v1/Users

Работа с записями по идентификатору

POST /api/v1/Users

PUT /api/v1/Users

PATCH /api/v1/Users

DELETE /api/v1/Users

User {

}

Ячейки

GET /api/v1/Cells - Список ячеек

Работа с записями по идентификатору

POST /api/v1/Cells - Добавить/редактировать ячейку

DELETE /api/v1/Cells('{id}') - Удалить ячейку

GET /api/v1/Cells('{id}') - Получить ячейку по идентификатору

PUT /api/v1/Cells('{id}') - Добавь/редактировать ячейку по идентификатору

Обновление справочника со сбросом всех записей

POST /api/v1/Cells/BeginOverwrite - начинает процедуру пакетной выгрузки ячеек на сервер. Все позиции будут накапливаться и не будут доступны до вызова функции EndOverwrite.

POST /api/v1/Cells/EndOverwrite - завершает процедуру пакетной выгрузки номенклатуры. Только после вызова этой функции сервер завершит обработку переданных позиций номенклатуры и они попадут в справочник товаров. Старый справочник товаров при этом будет полностью очищен.

Обновление записей

POST /api/v1/Cells/BeginUpdate - начинает процедуру пакетного обновления ячеек на сервере. Все позиции будут накапливаться и не будут доступны до вызова функции EndUpdate.

POST /api/v1/Cells/EndUpdate - завершает процедуру пакетного обновления ячеек. Только после вызова этой функции сервер завершит обработку переданных позиций номенклатуры и они попадут в справочник товаров. Выгруженная номенклатура будет слита с существующим на сервере справочником.

Сброс обновления/ перезаписывания

POST /api/v1/Cells/ResetUpdate - сбрасывает процедуру пакетного обновления ячеек.

Номенклатура

Получение схемы

Получение списка всех полей номенклатуры:

https://localhost:9000/api/v1/ProductSchema?$expand=allfields

Получение полей номенклатуры:

https://localhost:9000/api/v1/ProductSchema?$expand=fields

Получение списка фиксированных полей:

https://localhost:9000/api/v1/ProductSchema?$expand=defaultFields

Работа с массивом

GET /api/v1/Products - список номенклатуры.

Работа с записями по идентификатору

POST /api/v1/Products - добавить/ редактировать номенклатуру.

DELETE /api/v1/Products('{id}') - удалить номенклатуру.

GET /api/v1/Products('{id}') - получить номенклатуру по идентификатору.

PUT /api/v1/Products('{id}') - добавить/ редактировать номенклатуру по идентификатору.

Обновление справочника со сбросом всех записей

POST /api/v1/Products/BeginOverwrite - начинает процедуру пакетной выгрузки номенклатуры на сервер. Все позиции будут накапливаться и не будут доступны до вызова функции EndOverwrite.

POST /api/v1/Products/EndOverwrite - завершает процедуру пакетной выгрузки номенклатуры. Только после вызова этой функции сервер завершит обработку переданных позиций номенклатуры и они попадут в справочник товаров. Старый справочник товаров при этом будет полностью очищен.

Обновление записей

POST /api/v1/Products/BeginUpdate - начинает процедуру пакетного обновления номенклатуры на сервере. Все позиции будут накапливаться и не будут доступны до вызова функции EndUpdate.

POST /api/v1/Products/EndUpdate - завершает процедуру пакетного обновления номенклатуры. Только после вызова этой функции сервер завершит обработку переданных позиций номенклатуры и они попадут в справочник товаров. Выгруженная номенклатура будет слита с существующим на сервере справочником.

Сброс обновления/ перезаписывания

POST /api/v1/Products/ResetUpdate - сбрасывает процедуру пакетного обновления номенклатуры.

Обновление номенклатуры таблицей значений

POST /api/v1/Products/BeginUploadProducts - начинает выгрузку позиций номенклатуры.

POST /api/v1/Products/AddProductToUpload - добавляет в выгрузку товаров товар с упаковкой.

POST /api/v1/Products/AddProductsToUpload - добавляет в выгрузку товаров товарs с упаковками.

POST /api/v1/Products/EndUploadProducts - завершает выгрузку товаров.

Таблицы

Работа с массивом

GET /api/v1/Tables/BiznesProcessy - получить все записи таблицы.

Работа с записями по идентификатору

POST /api/v1/Tables/BiznesProcessy - редактировать/ добавить запись.

DELETE /api/v1/Tables/BiznesProcessy('{uid}') - удалить запись из таблицы.

GET /api/v1/Tables/BiznesProcessy('{uid}') - получить запись по идентификатору.

PATCH /api/v1/Tables/BiznesProcessy('{uid}') - редактировать запись.

PUT /api/v1/Tables/BiznesProcessy('{uid}') - редактировать/добавить запись по известному идентификатору.

Обновление справочника со сбросом всех записей

POST /api/v1/Tables/BiznesProcessy/BeginOverwrite - начинает процедуру пакетной выгрузки строк таблицы на сервер. Все позиции будут накапливаться и не будут доступны до вызова функции EndOverwrite.

POST /api/v1/Tables/BiznesProcessy/EndOverwrite - завершает процедуру пакетной выгрузки строк таблицы. Только после вызова этой функции сервер завершит обработку переданных позиций и они попадут в таблицу. Старое содержимое при этом будет полностью очищено.

Обновление записей

POST /api/v1/Tables/BiznesProcessy/BeginUpdate - начинает процедуру пакетного обновления строк таблицы на сервере. Все передаваемые будут накапливаться и не будут доступны до вызова функции EndUpdate.

POST /api/v1/Tables/BiznesProcessy/EndUpdate - завершает процедуру пакетного обновления строк таблицы. Только после вызова этой функции сервер завершит обработку переданных позиций и они попадут таблицу. Выгруженные позиции будут слиты с существующей на сервере таблицей.

Сброс обновления\перезаписывания

POST /api/v1/Tables/BiznesProcessy/ResetUpdate - сбрасывает процедуру пакетного обновления строк таблицы.

Документы

Получение списка типов документов

GET /api/v1/DocTypes - список типов документов.

GET /api/v1/DocTypes('{uni}') - получить тип документа по идентификатору.

Получение всех полей типа документа

https://localhost:9000/api/v1/DocTypes?$expand=allfields

Работа с массивом

GET /api/v1/Docs - список документов.

POST /api/v1/Docs редактировать/ добавить документ.

Работа с записями по идентификатору

DELETE /api/v1/Docs('{id}') - удалить документ.

GET /api/v1/Docs('{id}') - получить документ по идентификатору.

PATCH /api/v1/Docs('{id}') - редактировать документ.

PUT /api/v1/Docs('{id}') - редактировать/добавить документ по известному идентификатору.

Обновление записей

При любом редактировании документа, он сразу не сохраняется в систему. Сохранение происходит, если вызвать принудительное сохранение (EndUpdate), либо через 30 сек от последнего изменения. 

POST /api/v1/Docs('{id}')/EndUpdate - принудительно сохраняет документ, когда все строки уже загружены (не дожидаясь сохранения через 30 сек, как указано выше).

Получение строк документа

GET /api/v1/Docs('{key}')/declaredItems - получить строк документа.

POST /api/v1/Docs({key})/declaredItems - редактировать/добавить строку документа.

Блокировка документа

POST /api/v1/Docs('{id}')/Block - блокирует документ для совместной работы.

Тело запроса:

{"timeout":1000}

, где timeout - время блокировки документа

POST /api/v1/Docs('{id}')/Unblock  - разблокирует документ для совместной работы.

Склады

Работа с массивом

GET /api/v1/Warehouses - получить список складов.

Работа с записями по идентификатору

POST /api/v1/Warehouses - добавление/ редактирование склада.

DELETE /api/v1/Warehouses('{id}') - удаление склада.

GET /api/v1/Warehouses('{id}') - получить конкретный склад.

PATCH /api/v1/Warehouses('{id}') - редактирование существующего склада.

PUT /api/v1/Warehouses('{id}') - добавление/ редактирование склада по существующему идентификатору.

Warehouse {

Получение информации о подключенных устройствах

GET /api/v1/Devices - список устройств.

DeviceInfo {

}

Настройки

GET /api/v1/CustomSettings - cписок настроек

Результат:

{
"@odata.context": "http://localhost:9000/MobileSMARTS/api/v1/$metadata#CustomSettings",
"value": [
{
"name": "testProp",
"value": "testValue"
}
]
}

POST /api/v1/CustomSettings - Добавить/отредактировать настройку

Тело запроса:

{
"name": "testProp",
"value": "testValue"
}

Также можно добавлять массив настроек:

 {
"value":[  
{
"name": "testProp",
"value": "testValue"
},
{
"name": "testProp1",
"value": "testValue1"
}   
]
}

GET /api/v1/CustomSettings('{name}') - получить настройку

Тело ответа:

{
"@odata.context": "http://localhost:9000/MobileSMARTS/api/v1/$metadata#CustomSettings/$entity",
"name": "testProp",
"value": "testValue"
}

PUT /api/v1/CustomSettings('{name}') - Добавить/отредактировать настройку по известному идентификатор.

Тело запроса:

{
"name": "testProp",
"value": "testValue"
}

DELETE /api/v1/CustomSettings('{name}') - удалить настройку

Сообщения

Действия с сообщениями:

GET /api/v1/Messages - список сообщений.

POST /api/v1/Messages - добавить/отредактировать сообщение.

GET /api/v1/Messages('{id}') - получить сообщение по идентификатору.

MessageInfo {

}