Интеграция с платформой REPEAT VISION через web-интерфейс#
Web-интерфейс платформы REPEAT VISION позволяет взаимодействовать с программами пользователей, которые могут создаваться с применением любых языков программирования, обладающих поддержкой взаимодействия между программами через web посредством подхода REST.
1. Предварительные требования#
Пользователь должен быть зарегистрирован на платформе REPEAT VISION или обладать учётной записью в дистрибутиве REPEAT VISION, установленного в локальной сети организации;
Пользователь должен предварительно создать API ключ в настройках своего профиля и использовать данный ключ при взаимодействии внешней программы с платформой REPEAT VISION через web-интерфейс;
У пользователя должен быть минимум 1 проект на платформе REPEAT VISION;
Проект должен быть отлажен, в нём не должны содержаться ошибки запуска на расчёт;
Проект должен содержать глобальные переменные, связанные с необходимыми свойствами блоков. В глобальные переменные проекта записываются значения параметров и граничных условий внешней программы.
Подсказка
Рекомендуется использовать блок Выходной порт для удобного получения результатов расчётов из проекта REPEAT VISION в внешнюю программу.
2. Процесс взаимодействия внешних программ с REPEAT VISION#
Перед знакомством с основными действиями по интеграции с платформой REPEAT VISION через web-интерфейс, необходимо рассмотреть типовой процесс взаимодействия внешней программы с проектом REPEAT VISION.
Типовой процесс взаимодействия внешних программ с REPEAT VISION/Typical process of interaction of external programs with REPEAT VISION#
2.1. Получение списка проектов пользователя платформы REPEAT VISION#
Список проектов возвращается GET запросом project/getAll. В заголовок запроса необходимо поместить API ключ личного кабинета пользователя.
В ответ на запрос будет сформирован список [ ] записей { } с проектами пользователя. Для каждого проекта наиболее важными ключами являются:
"projectId"- Уникальный идентификатор проекта. Идентификатор необходим для выбора конкретного проекта для дальнейшего выполнения расчётов."projectName"- Имя проекта, присвоенное пользователем. По имени удобно проверить, какой проект необходим пользователю для дальнейшего использования из внешней программы.
2.2. Получение списка глобальных переменных проекта#
Список глобальных переменных для одного выбранного проекта возвращается GET запросом model/globals.
В заголовок запроса необходимо поместить API ключ личного кабинета пользователя и строковое значение уникального идентификатора необходимого проекта.
Ответом на запрос будет сформирована структура JSON, в которой в качестве ключей используются имена глобальных переменных выбранного проекта, а значениями структуры являются строковые представления вещественных величин глобальных переменных проекта. Например,
{
"DENSITY": "998.21",
"PRESSURE": "50000.0"
}
2.3. Запуск проекта на расчёт#
До выполнения запуска выбранного проекта на расчёт необходимо подготовить новые вещественные значения глобальных переменных проекта в соответствии со структурой, полученной на запрос списка глобальных переменных проекта. Опционально параметрами тела запроса запуска на расчёт могут быть настройки времени моделирования, подробное описание которых приведено в справке метода.
Запуск проекта с заданным идентификатором на расчёт выполняется POST запросом model/run.
Параметры заголовка запроса на расчёт проекта требуется формировать такими же, как и в случае запроса списка глобальных переменных проекта.
Ответом на запрос будет сформирована структура JSON, в которой желательно использовать блоки, свойства которых содержат ключ "customName", применимый для блоков Выходной порт, поскольку для удобного получения результатов расчёта пользователю нагляднее пользоваться названиями параметров, присвоенными им самостоятельно.
См. также
Подробный урок о порядке подготовки модели для автоматизации взаимодействия с внешними программами приведён в соответствующем разделе документации.
2.4. Выполнение периодического запроса состояния процесса расчёта#
После запуска на расчёт требуется время на выполнение процесса моделирования, в процессе которого выполняется численное решение сформированной системы дифференциальных уравнений.
Расчётный модуль платформы REPEAT VISION позволяет периодически формировать ответ, содержащий информацию о состоянии процесса выполнения расчёта с помощью GET метода model/statusModel.
Важно
Требуется выполнять запрос состояния процесса расчёта периодичностью более или равным 1 секунде.
Описание состояний процесса расчёта выбранной модели представлено в таблице в справке метода.
2.5. Получение результатов расчёта#
До формирования результатов расчёта необходимо получить информацию о расчётном модуле, выполняющем моделирование. Данная информация возвращается GET методом controllervm/getUserVM. Далее полученные значения необходимо использовать в заголовке запроса для последующего получения результатов расчёта.
Результаты расчёта для выбранного идентификатора параметра получаются с помощью POST запроса model/parameters/getRange.
Примечание
Идентификаторы параметров формируются на этапе запуска проекта на расчёт (см. выше).
Ответом на запрос будет сформирована структура JSON, содержащая для выбранного идентификатора параметра временной ряд для указанного интервала времени.
2.6. Завершение взаимодействия с расчётным модулем платформы REPEAT VISION#
После выполнения моделирования необходимо всегда завершать взаимодействие с расчётным модулем.
Данное действие выполняется с помощью POST запроса model/stop.
Важно
Важно завершать взаимодействие с расчётным модулем даже в случае возникновения исключительных ситуаций в ходе работы программы, размещая POST запрос model/stop в менеджерах контекста и в конструкциях обработки исключений.