Мобильное приложение

Введение

REST API предоставляет возможность работы с сущностями на стороне сайта с помощью протокола HTTPS.

Вызов метода с передачей параметров в URL:

https://cbc1.ru/app/sbs/rest/<сущность>.<метод>?<параметр1>=<значение1>&<параметр2>=<значение2>… Вызов метода с передачей параметров в JSON:

https://cbc1.ru/app/sbs/rest/<сущность>.<метод> 
{
   "<параметр1>": "<значение1>",
   "<параметр2>": "<значение2>"
}
Значения параметров методов принимаются в кодировке UTF-8.
Ответ передаётся в формате JSON в кодировке UTF-8.
В ответе присутствует обязательный ключ “success” со значением true/false. В случае “false” в ответе присутствуют дополнительные ключи “errorCode” и “errorText”.

Пример успешного выполнения запроса:

{ "success": true, "items": [] } Пример ошибки при выполнения запроса:

{ "success": false, "errorCode": "METHOD_NOT_FOUND", "errorText": "Метод не найден" }

Авторизация по API ключу

API ключи для интеграции можно создать в панеле администрирования.
Ключ привязывается к подразделению и обладает правами указанной в ключе роли - доступ к функционалу и тем или иным сущностям зависит от прав роли и назначенного подразделения.

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

Authorization: apikey #KEY# где #KEY# - ключ API

Пакетное выполнение запросов

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

В пакетном вызове каждый запрос имеет свой ключ (формат не регламентируется). Результат выполнения конкретного запроса будет доступен в ответе по соответствующему ключу запроса. Порядок выполнения запросов – согласно порядку определения.

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

https://cbc1.ru/app/sbs/rest/batch/
{
   "<ключ1>": "<метод1>",
   "<ключ2>": "<метод2>",
   ...
}

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

 Ключ Описание  Обяз. 
CLASS Название сущности Да
METHOD Метод сущности Да
PARAMS  Набор параметров метода Нет
Например:

https://cbc1.ru/app/sbs/rest/batch/
{
   "departmentList": {
      "ENTITY": "department",
      "METHOD": "list"
   },
   "requestType": {
      "ENTITY": "dictionary",
      "METHOD": "request.type.get",
      "PARAMS": {
         "id": 545
      }
   }
}