Создание действия

1. В настройках пространства Центр администрирования в разделе Списки по двойному клику ЛКМ перейти на список Действия
2. Создать элемент с типом Вызов внешнего сервиса
3. На вкладке Информация заполнить Атрибуты:

  • Название
  • URL - url сервиса. Пример: https://api.vitrocad.ru/publish
  • Права - права, требуемые пользователю для выполнения действия

Привязка действия к типу элемента

1. В настройках пространства Центр администрирования в разделе Списки по двойному клику ЛКМ перейти на список Действие типа элемента
2. Создать элемент с типом Действие типа элемента
3. На вкладке Информация заполнить атрибуты:

  • Название
  • Действие - из списка выбрать действие, которое необходимо привязать к типу элемента
  • Тип элемента - из списка выбрать тип элемента, к которому привязывается действие
  • Изображение - иконка действия
  • Подтверждение - требует ли действие подтверждение пользователя
  • Показать после действия - отображать ли сообщение об успешности выполнения действия
  • Показать прогресс - отображать ли прогресс выполнения действия
  • Контекст - отображать ли действие в контекстном меню

  • Дополнение - отображать ли действие в дополнительной кнопке "Действия" в командном меню

  • Если атрибуты "Контекст" и "Дополнение" имеют значение false, действие будет отображаться отдельной кнопкой в командном меню

Вызов действия

При вызове действия отправляется POST запрос на указанный в действии URL.
В заголовке Authorization передается токен пользователя.

В теле запроса передается JSON вида:

{
    itemIdList: [...] - массив id выбранных элементов
}

Обработка ответа

Доступны два варианта обработки полученного при вызове сервиса ответа:

1. Отображение информации об ошибке

Для отображения текста ошибки, ответ должен приходить в виде строки, либо в формате JSON вида:

{
    exception: {
	    message: 'Текст ошибки'
    }
}

2. Переход по ссылке

Для перехода по ссылке в ответе должно соблюдаться два условия:

  1. Код ответа должен 200 ОК
  2. В заголовках ответа должен присутствовать один из двух вариантов:
    1. Link-Open + ссылка (откроется в этой же вкладке)
    2. Link-Open-New-Tab + ссылка (откроется в новой вкладке)

Если в браузере вызывается сервис, который расположен на хосте отличном от хоста страницы, то в браузере включается механизм CORS (Cross-Origin Resource Sharing). Этот механизм накладывает ряд ограничений, в частности не позволяет со страницы прочитать заголовки ответа. В этом случае нужно на внешнем сервере явно указать, какие именно заголовки будут доступны. Для этого в заголовке ответа от внешнего сервиса нужно добавить:
"Access-Control-Expose-Headers": "Link-Open, Link-Open-New-Tab"

"Access-Control-Allow-Origin": "адрес портала, с которого вызывается внешний сервис"



  • No labels