Введение
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
}
}
}