Формулировка проблемы: в связи с доработкой импорта/экспортa конфигурации требуется доработать API метод импорта конфигурации: добавить параметр "Удалять права при замене объектов".
Решение: необходимо доработать API метод
rest/api/configuration
, добавив входной параметр
delete_rights
. Ввиду отсутствия описания данного
метода ниже представлено полное описание с доработкой.
URL метода: rest/api/configuration
Тип запроса: POST
.
Данный метод требует стандартной HTTP авторизации. В качестве
атрибута enctype
необходимо указывать
multipart
.
Метод принимает следующие входные параметры:
data
- файл с импортируемой конфигурацией
(обяз.);
new_version
- создание новой версию для
объектов типа "форма" (необяз., по умолчанию
true
). Может принимать следующие значения:
false
- при наличии в среде импорта формы
с тем же кодом, что и у импортируемой, она будет заменена;
true
- если в среде импорта уже
содержится форма с тем же кодом, что и у импортируемой, то
данный объект добавится в виде новой версии формы с текущей
датой на сервере.
delete_child_objects
- удаление всех дочерних
объектов при замене родительского объекта (необяз., по умолчанию
false
). Может принимать следующие значения:
false
- если в среде импорта имеется
объект, который будет заменен, то все его дочерние объекты
перенесутся внутрь заменяемого объекта;
true
- если в среде импорта существует
объект, который будет заменен, то все его дочерние объекты
будут удалены;
delete_rights
- удаление прав при замене
объектов (необяз., по умолчанию false
). Может
принимать следующие значения:
false
- если в среде импорта существует
объект, который будет заменен, то права на объект
(ограничения к доступу) после замены не удаляются;
true
- если в среде импорта существует
объект, который будет заменен, то права на объект
(ограничения к доступу) после замены будут удалены;
locale
(не обяз.) - код локали (при
отсутствии параметра используется
язык
системы по умолчанию).
Метод возвращает json
со следующими полями:
errorCode
- код выполнения, 0 - успешно,
иначе - ошибка;
errorMessage
- сообщение о результате
выполнения (успешном либо неуспешном).
Пример запроса:
POST /Synergy/rest/api/configuration HTTP/1.1 Host: localhost: 8080 Cache-Control: no-cache Content-Type: multipart/form-data { "data" : "configuration_1697.xml", "new_version" : "false", "delete_rights" : "true" }
Пример возвращаемого ответа:
{ "errorCode" : 0, "errorMessage" : "The objects has been successfully imported" }
Альтернативные потоки событий.
Альтернативный поток 1. Переданы некорректные параметры, сервер возвращает ошибку HTTP 400 c кодом ошибки 3.
Альтернативный поток 2. Недостаточно прав для импорта/не авторизован, сервер возвращает ошибку HTTP 403 с кодом ошибки 2.
Альтернативный поток 3. В случае других ошибок сервер возвращает ошибку HTTP 500.