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

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

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

Для добавления новой группы пользователей необходимо сформировать POST запрос по адресу:

https://localhost:<порт базы>/api/v1/UserGroups

В теле запроса необходимо заполнить основную информацию по группе:

	 {
     "id": "НоваяГруппа",
     "name": "Новая",
     "documentTypeNames": [
       "Заказ"
     ]
}

Где:

id - уникальный идентификатор группы

name - отображаемое имя группы

documentTypeNames- список типов документов, к которым имеют доступ пользователи этой группы

Если группа существует, то данные его обновятся.

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

https://localhost:<порт базы>/api/v1/UserGroups('<id>')

вместо <id> необходимо вставить идентификатор обновляемой записи.

В теле запроса нужно указать только те поля которые необходимо обновить. Например, если нам нужно обновить только имя группы, то в теле запроса указываем:

	 {
"name": "NewTestUserGROUP"
}

В результате у записи с указанным идентификатором обновится только одно поле "name"

Для получения списка всех групп необходимо сформировать GET запрос по адресу:

https://localhost:<порт базы>/api/v1/UserGroups

В результате получим список всех групп со всей информацией по ним

В данном запросе можно использовать все виды фильтрации, поддерживаемыми Odata. Например, если нужно вывести только группы, привязанных к типу документа “Заказ”, формируем такой запрос

https://localhost:<порт базы>/api/v1/Users?$filter=documentTypeNames/any(value: value eq 'Заказ')

Если необходимо дополнительно видеть всех пользователей в списке групп, то нужно сформировать запрос так:

https://localhost:<порт базы>/api/v1/Users?$expand=users

В результате получим список групп с пользователями

для получения конкретной группы нужно вызвать GET запрос:

 https://localhost:<порт базы>/api/v1/UserGroups('<id>')

вместо <id> необходимо вставить идентификатор обновляемой записи.

для получения группы с пользователями:

https://localhost:<порт базы>/api/v1/UserGroups('<id>')?$expand=users

для получения только пользователей, относящихся к этой группе:

https://localhost:<порт базы>/api/v1/UserGroups('<id>')/users

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

Для добавления нового пользователя или редактирования существующего необходимо сформировать POST запрос по адресу:

https://localhost:<порт базы>/api/v1/Users

В теле запроса необходимо заполнить основную информацию по пользователю:

	 {
     "id": "testUser",
     "name": "testUserName",
     "password": "123456",
     "barcode": "123456",
     "groupId": "Обмен",
     "warehouseIds": [
       "1"
     ]
}

Где:

id - уникальный идентификатор пользователя

name - отображаемое имя пользователя

password - пароль пользователя

barcode - штрихкод для быстрого входа пользователя на терминале

groupId - определяет к какой группе относится пользователь

warehouseIds - определяет к каким складам относится пользователь

Если пользователь существует, то данные его обновятся.

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

https://localhost:<порт базы>/api/v1/Users('<id>')

вместо <id> необходимо вставить идентификатор обновляемой записи.

В теле запроса нужно указать только те поля которые необходимо обновить. Например, если нам нужно обновить только имя пользователя, то в теле запроса указываем:

	 {
"name": "NewTestUserName"
}

В результате у записи с указанным идентификатором обновится только одно поле "name"

Для получения списка всех пользователей необходимо сформировать GET запрос по адресу:

https://localhost:<порт базы>/api/v1/Users

В результате получим список всех пользователей со всей информацией по ним

В данном запросе можно использовать все виды фильтрации, поддерживаемыми Odata. Например, если нужно вывести только пользователей, привязанных к складу “1”, формируем такой запрос

https://localhost:<порт базы>/api/v1/Users?$filter=warehouseIds/any(value: value eq '1')

Если необходимо отобрать всех пользователей относящихся к группе “общая”, формируем запрос:

https://localhost:<порт базы>/api/v1/Users?$filter=groupId eq 'общая'

Таблицы

Для добавления новой строки в таблицу необходимо сформировать POST запрос по адресу:

https://localhost:<порт базы>/api/v1/Tables/<имя таблицы>

Например если нужно обновить таблицу Контрагентов:

https://localhost:<порт базы>/api/v1/Tables/Kontragenty


В теле запроса необходимо заполнить основную информацию по группе:

	 {
     "uid": "1",
     "index": "1",
     "field1": "value1",
"field2": "value2"
}

Где:

uid- уникальный идентификатор строки

index- индекс строки

field1,field2 … -поля, которые необходимо сохранить в строке

Если строка существует, то данные ее обновятся.

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

https://localhost:<порт базы>/api/v1/Tables/Kontragenty

Для удаления строки нужно сформировать DELETE запрос с указание uid строки:

https://localhost:<порт базы>/api/v1/Tables/Kontragenty(‘1’)

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

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

https://localhost:<порт базы>/api/v1/Products

В теле запроса необходимо заполнить основную информацию по группе:

	 {
     "id": "a35362c4-1a04-46d9-9302-c2701d2c84a8",
     "name": "товар1",
     "barcode": "",
     "field1": "value1",
"field2": "value2"
}

Где:

id - уникальный идентификатор строки

name - наименование товара

barcode- штрихкод товара

field1,field2 … -поля, которые необходимо сохранить в строке

Если строка существует, то данные ее обновятся.

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

https://localhost:<порт базы>/api/v1/Products

Для удаления строки нужно сформировать DELETE запрос с указание id строки:

https://localhost:<порт базы>/api/v1/Products

Документы

Создание, удаление документов происходит аналогично предыдущим блокам.

Список документов также поддерживает параметры для порционной загрузки, которые передаются в виде query-строки(?$top=1&$skip=10)

Пример:

https://localhost:9000/api/v1/Docs?$top=5&amp;$skip=10

При выполнении данного запроса мы получим максимум 5 записей начиная с 11 индекса в списке.

Если в запросе на получение списка указать параметр count=true, в результате вернется дополнительно поле count, которое содержит общее число записей в списке на сервере.

Для фильтрации данных в запросе можно указывать параметр $filter, например:

https://localhost:9000/api/v1/Docs?$filter=lastChangeDate gt 2017-10-06T17:41:10Z and documentTypeName eq ‘Заказ’

При выполнении данного запросы мы получим список документов, дата изменения которых более указанной в запросе и тип документа - “Заказ”.

Также можно указывать список полей, которые необходимо отобразить в результате, например:

https://localhost:9005/api/v1/Docs?$select=id,name

Результатом выполнения данного запроса будет список документов, состоящих только из 2-х полей - id и tables

Для получения нужной записи необходимо составить запрос с указанием идентификатора этой записи, например:

https://localhost:9005/api/v1/Docs(‘165’)

Чтобы отсортировать результат необходимо указать параметр $orderby, например:

https://localhost:9005/api/v1/Docs?$orderby=id

В результате получим список документов, отсортированный по идентификатору

Для документов реализован вывод записей строк документа и таблиц документа

Пример:

Если в документе с идентификатором “1” существует таблица “ОплатыВозвраты”, то получить строки таблицы можно отправив запрос:

https://localhost:9000/api/v1/Docs('1')/ОплатыВозвраты

Для получения только строк документа с идентификатором “123” необходимо выполнить запрос  

https://localhost:9000/api/v1/Docs('123')/declaredItems

Для получения документа со всеми строками и с идентификатором “123” необходимо выполнить запрос  

https://localhost:9000/api/v1/Docs('123')?$expand=declaredItems,currentItems

Поля, которые необходимо раскрыть, нужно перечислять через запятую

Чтобы отобразить все документы, включая его таблицы со строками, нужно сформировать запрос в таком виде:

https://localhost:9000/api/v1/Docs?$expand=tables($expand=rows)

Чтобы отобразить все документы, включая его таблицы со строками, нужно сформировать запрос в таком виде:

 https://localhost:9000/api/v1/Docs?$expand=declaredItems,currentItems,tables($expand=rows)