Обработка входящих запросов (exec)
Обзор
Производит обработку входящих запросов с помощью служебных сценариев.
При этом возможны следующие варианты обработки.
Обработчик ролевого приложения
Запрос должен быть авторизован под учетной записью пользователя, в качестве обработчика запускается служебный сценарий ролевого приложения. Выбор ролевого приложения происходит на основе заголовка Referer, который содержит URI ролевого приложения:
Referer: http://<ServerIP[:Port]>/app/<RoleappFolder>
Этот заголовок автоматически генерируется браузером при запросах из веб-приложения.
Обработчик веб-хуков внешних систем.
Запрос должен содержать заголовок Authorization со значением Bearer <local_token>
, где <local_token> – значение поля token_local из канала интеграции.
В качестве обработчика запускается служебный сценарий соответствующий каналу интеграции.
Authorization: Bearer cabcf10d692d5f8f386974d435997ea5
Запросы
HTTP verb | Endpoint | Описание |
---|---|---|
|
|
|
|
|
Запуск обработчика входящих запросов с передачей тела
Запрос
В теле запроса размещается произвольный JSON-объект. Он будет доступен в обработчике инициированного служебного сценария в качестве стартового параметра 4.
Параметры доступны в любое время через функцию выражений startparam(N)
, где N
– номер параметра.
Обработчик сценария в параметрах запуска получит:
Функция | Описание |
---|---|
|
Представление JSON-объекта связанной с запросом сущности ролевого приложения или канала интеграции. |
|
Название метода из HTTP-запроса. Всегда |
|
URL из HTTP-запроса. Всегда |
|
JSON-объект с телом запроса. Если в теле передано что-либо другое, то оно также будет доступно. |
|
Список заголовков из HTTP-запроса. |
|
IP-адрес отправителя HTTP-запроса. |
|
Протокол HTTP-запроса. Всегда |
POST /exec HTTP/1.1
Referer: http://192.168.1.2:5800/app/folder/index.html
Content-Type: application/json; charset=utf-8
{
"method": "myMethod1",
"m_param": 1,
"dt": "2019-11-01T11:01:59Z",
"abc": "Kу-ку",
"isSmth": true,
"a": [1,5,"aaa"],
"o": {
"x": 1,
"y": "abc",
"z": {
"z1": [],
"z2": {},
"z3": null
}
}
}
Параметры запроса
Запрос может иметь необязательный параметр ?timeout=<sec>
в query string URL’а. Если он присутствует, принимаются целочисленные значения больше нуля.
Данный параметр может лишь уменьшить время ожидания завершения сценария. Максимальное время ожидания настраивается в поле opts.recv_timeout
соответствующей
сущности (roleapp или integration_point для типа public
) или
в поле recv_timeout секции соответствущего типа (не public
) файла webservices.json.
Ответ
Ответ возвращается после завершения инициированного обработчика сценария. В результате работы сценария или группы вложенных друг в друга сценариев значения локальных переменных принимают окончательные значения. Часть значений переменных используется при подготовке HTTP-ответа. Сопоставление происходит по именам переменных:
Имя переменной | Назначение |
---|---|
|
HTTP код ответа, по умолчанию |
|
Дополнительные заголовки ответа в формате JSON. По умолчанию пустая строка и только стандартные HTTP-заголовки. Если среди указанных заголовков отсутствует стандартный заголовок |
|
Тело ответа. По умолчанию отсутствует. |
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Some-Header: header value
Тело ответа
Запуск обработчика входящих запросов
Запрос
Обработчик сценария в параметрах запуска получит:
Функция | Описание |
---|---|
|
Представление JSON-объекта связанной с запросом сущности ролевого приложения или канала интеграции. |
|
Название метода из HTTP-запроса. Всегда |
|
URL из HTTP-запроса. Всегда |
|
Список заголовков из HTTP-запроса. |
|
IP-адрес отправителя HTTP-запроса. |
|
Протокол HTTP-запроса. Всегда |
GET /exec HTTP/1.1
Referer: http://192.168.1.2:5800/app/folder/index.html
Content-Type: application/json; charset=utf-8
Параметры запроса
Запрос может иметь необязательный параметр ?timeout=<sec>
в query string URL’а. Если он присутствует, принимаются целочисленные значения больше нуля.
Данный параметр может лишь уменьшить время ожидания завершения сценария. Максимальное время ожидания настраивается в поле opts.recv_timeout
соответствующей
сущности (roleapp или integration_point для типа public
) или
в поле recv_timeout секции соответствущего типа (не public
) файла webservices.json.
Ответ
Ответ возвращается после завершения инициированного обработчика сценария. В результате работы сценария или группы вложенных друг в друга сценариев значения локальных переменных принимают окончательные значения. Часть значений переменных используется при подготовке HTTP-ответа. Сопоставление происходит по именам переменных:
Имя переменной | Назначение |
---|---|
|
HTTP код ответа, по умолчанию |
|
Дополнительные заголовки ответа в формате JSON. По умолчанию пустая строка и только стандартные HTTP-заголовки. Если среди указанных заголовков отсутствует стандартный заголовок |
|
Тело ответа. По умолчанию отсутствует. |
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Some-Header: header value
Тело ответа