570x
001921
2024-11-27

API II

В этой статье представлено краткое введение в RFEM 6 API II.

Что такое API?

API (Application Programming Interface) - это интерфейс, через который различные программные приложения могут взаимодействовать друг с другом. API определяет правила для обмена информацией между программами.

API II позволяет получить доступ к функциям RFEM 6/RSTAB 9 с помощью самостоятельно запрограммированного программного обеспечения. Например, можно создавать модели, создавать нагрузки, запускать расчет и, наконец, считывать результаты.

RFEM 6/RSTAB 9 уже имеет API - интерфейс веб-сервиса (API I). Она будет также сохранена. Таким образом, нет необходимости переводить существующее программное обеспечение на API II.

Если в RFEM 6/RSTAB 9 добавляются новые функции, они доступны только в API II. API I остается «фиксированным» на текущем уровне.

Каковы технические отличия от «старого» API?

Прежде всего, оба интерфейса основаны на технологии веб-сервисов. RFEM 6/RSTAB 9 взаимодействует с клиентским программным обеспечением по протоколу HTTP (или HTTPS).

С помощью API I клиент и сервер обмениваются сообщениями в формате SOAP. Вместо этого API II использует протокол gRPC.

SOAP обменивается сообщениями в формате XML. Коммуникация с использованием SOAP требует относительно больших накладных расходов.

gRPC, напротив, обменивается сообщениями в облегченном двоичном формате на основе буфера. Это гораздо эффективнее, чем текстовые форматы, такие как XML или Json.

gRPC использует более новый протокол HTTP/2, который также делает передачу более эффективной.

Новый API II позволяет объединять несколько объектов в список и затем передавать их. Это означает, что потребуется всего несколько вызовов API, а не множество небольших. Это также увеличивает эффективность. На примере ниже показано, как работает данный метод пакетной обработки.

Все эти меры по повышению эффективности означают, что связь через новый API II примерно в 10 раз быстрее, чем через API I.

API II позволяет запускать один и тот же код на трех разных платформах без каких-либо изменений.

  1. В качестве автономной программы Python, которая получает доступ к локально или установленной в сети программе RFEM 6 «извне».
  2. Во внутренней консоли скриптов RFEM 6.
  3. В облаке Dlubal.

Автономная программа

Обычная программа RFEM 6 установлена на вашем компьютере. Ваша программа Python взаимодействует с RFEM через API II.

Консоль скрипта

Ваш скрипт будет выполнен прямо в консоли скриптов RFEM.

Облако Dlubal

Для этого приложения RFEM вообще не должно быть установлено локально. Вы создаете свою программу, которая обменивается данными с сервером в облаке Dlubal. Ваше приложение генерирует конструктивные данные и данные о нагрузках на сервере. Данный расчет выполняется на сервере. Ваша прикладная программа считывает результаты расчета и оценивает их.

Что изменилось в процессе выставления счетов?

За использование старого API I взималась ежемесячная плата за использование. Это не зависело от фактического использования.

Новый API II изменяет эту модель на модель выставления счетов на основе использования. Это означает, что за вызов определённых функций API платно. Эта сумма будет взиматься в кредитах Dlubal. Их можно приобрести в интернет-магазине.

Создание ключа API

Для использования API II в дополнение к подписке на веб-сервис требуется ключ API. Ключ API представляет собой фрагмент текста, используемый для идентификации и авторизации.

В экстранете пользователь может создавать ключи API.

Каждый из сгенерированных API-ключей присваивается «компании». Это означает, что любой пользователь, назначенный компании, может использовать ключи.

Часто бывает полезно создать несколько ключей API. Никакие дополнительные затраты не взимаются. Например, имеет смысл создать для каждого проекта отдельный ключ. Таким образом, пользователь может различить отдельные проекты в их внутреннем учете.

Установка интерфейса

Пакет для интерфейса доступен через PiPI. Запустите следующую команду для установки пакета:

Установка протокола dlubal.api

Пример программы

Небольшой пример демонстрирует использование нового API II. Затем создадим консольную балку из IPE 200.

Вот код программы:

импортировать dlubal.api.rfem как rfem

с помощью rfem.Application() в качестве rfem_app:

    rfem_app.create_model(name='консоль')
    rfem_app.delete_all_objects()

    inf = с плавающей запятой ('inf')

    конструкция = [
        rfem.structure_core.Material(
            №=1
            title='S235'
        ),
        rfem.structure_core.Section(
            №=1
            title='IPE 200',
            материал=1
        ),
        rfem.structure_core.Node(
            №=1
        ),
        rfem.structure_core.Node(
            №=2,
            координата_1=6,0
        ),
        rfem.structure_core.Line(
            №=1
            определение_nodes = [1,2]
        ),
        rfem.structure_core.Member(
            №=1
            Линия=1,
            section_start=1
        ),
        rfem.types_for_nodes.NodalSupport(
            №=1
            nodes=[1],
            пружина_x = inf,
            пружина_y = inf,
            пружина_z = inf,
            rotation_restraint_x=inf,
            rotation_restraint_y=inf,
            вращательный_restraint_z = inf
        ),
    ]

    rfem_app.create_object_list(конструкция)

Сначала импортируется база данных RFEM.

Командаwith создает экземпляр этого класса для программы rfem_app. Ключ API можно ввести в качестве аргумента для rfem.Application(). Однако мы не рекомендуем этого из соображений безопасности. Вместо этого ключ API должен быть сохранен в файле Config.ini. Как именно это работает, объясняется в подробной документации API II:

В следующей строке будет применен метод rfem_app.create_model(name='консоль') для создания новой модели RFEM. Название модели передается в качестве параметра.

В следующих нескольких строчках кода новый API II фундаментально отличается от «старого» подхода в API I. Прежде всего, в списке конструкций задаются элементы конструкции. которые затем передаются вместе с командой rfem_app.create_object_list(structure).


Автор

Г-н Фаулстих отвечает за контроль качества программы RFEM и обеспечивает поддержку пользователей.

Ссылки


;