Co to jest API?
API (interfejs programowania aplikacji) to interfejs, za pośrednictwem którego różne aplikacje mogą komunikować się ze sobą. API definiuje zasady wymiany informacji między programami.
Dzięki API II można uzyskać dostęp do funkcji RFEM 6/RSTAB 9 przy użyciu samodzielnego oprogramowania. Na przykład, możliwe jest generowanie modeli, tworzenie obciążeń, rozpoczynanie obliczeń i odczytywanie wyników.
Programy RFEM 6/RSTAB 9 mają już API, interfejs usługi sieciowej (API I). To również zostanie zachowane. Dlatego nie jest konieczna konwersja istniejącego oprogramowania na API II.
Jeżeli w programie RFEM 6/RSTAB 9 zostaną dodane nowe funkcje, będą one dostępne tylko w API II. API I pozostaje "zamrożone" na obecnym poziomie.
Jakie są techniczne różnice w stosunku do "starego" API?
Przede wszystkim obydwa interfejsy są oparte na technologii Webservice. RFEM 6/RSTAB 9 komunikuje się z oprogramowaniem klienta za pomocą protokołu HTTP (lub HTTPS).
Dzięki API I klient i serwer wymieniają wiadomości w formacie SOAP. API II zamiast tego używa protokołu gRPC.
SOAP wymienia komunikaty w formacie XML. Komunikacja z wykorzystaniem SOAP wiąże się ze stosunkowo dużym obciążeniem.
Z kolei gRPC wymienia komunikaty w uproszczonym formacie binarnym opartym na buforze. Jest to znacznie bardziej wydajne niż formaty tekstowe, takie jak XML lub JSON.
gRPC używa nowszego protokołu HTTP/2, co również zwiększa wydajność transmisji.
Nowy interfejs API II umożliwia łączenie wielu obiektów w listę, a następnie ich przesyłanie. Oznacza to, że wystarczy kilka wywołań API, a nie wiele małych. Zwiększa to również wydajność. Poniższy przykład pokazuje, jak działa ta technika wsadowa.
Wszystkie te mierniki wydajności oznaczają, że komunikacja za pośrednictwem nowego API II jest około 10 razy szybsza niż za pośrednictwem API I.
API II umożliwia uruchamianie tego samego kodu na trzech różnych platformach bez żadnych modyfikacji.
- Jako samodzielny program w języku Python, który uzyskuje dostęp "z zewnątrz" do zainstalowanego lokalnie lub sieciowo programu RFEM 6.
- W wewnętrznej konsoli skryptów programu RFEM 6.
- W chmurze Dlubal.
Program samodzielny
Zwykły program RFEM 6 jest zainstalowany na komputerze. Twój program w języku Python komunikuje się z RFEM za pośrednictwem API II.
Konsola skryptów
Skrypt zostanie wykonany bezpośrednio w konsoli skryptów programu RFEM.
Chmura Dlubal
W tym przypadku program RFEM nie musi być w ogóle instalowany lokalnie. Ty piszesz program, który komunikuje się z serwerem w chmurze Dlubal. Państwa program użytkowy generuje na serwerze dane dotyczące konstrukcji i obciążenia. Obliczenia są przeprowadzane na serwerze. Program użytkowy odczytuje wyniki obliczeń i ocenia je.
Co zmieniło się w procesie rozliczeniowym?
Za korzystanie ze starego API I pobierana była miesięczna opłata. Było to niezależne od rzeczywistego wykorzystania.
Nowy interfejs API II wprowadza model rozliczeń oparty na zużyciu. Oznacza to, że za wywołanie niektórych funkcji API pobierana jest opłata. Opłata zostanie pobrana w środkach firmy Dlubal. Można je nabyć w sklepie internetowym.
Generowanie klucza API
Do korzystania z API II wymagany jest klucz API oprócz subskrypcji Webservice. Klucz API to fragment tekstu używany do identyfikacji i uwierzytelniania.
Użytkownik może generować klucze API w Extranecie.
Każdy z wygenerowanych kluczy API jest przypisany do „firmy”. Oznacza to, że z kluczy może korzystać każdy użytkownik przypisany do firmy.
Możliwe i często przydatne jest generowanie kilku kluczy API. Nie zostaną naliczone żadne dodatkowe koszty. Na przykład sensowne jest wygenerowanie osobnego klucza dla każdego projektu. W ten sposób użytkownik może rozróżnić poszczególne projekty w ich wewnętrznej księgowości.
Instalacja interfejsu
Pakiet interfejsu jest dostępny za pośrednictwem PiPI. Uruchom następującą komendę, aby zainstalować pakiet:
- code.python#
pip install dlubal.api
- /kod#
Przykład programu
Mały przykład ilustruje zastosowanie nowego API II. Zostanie utworzona belka wspornikowa składająca się z IPE 200.
Oto kod programu:
- code.python#
importuj dlubal.api.rfem jako rfem
za pomocą rfem.Application () jako rfem_app:
- rfem_app.create_model(name='wspornik')
- rfem_app.delete_all_objects ()
- inf = float('inf')
- konstrukcja = [
- rfem.structure_core.Material (
- nr=1,
- nazwa='S235'
- ),
- rfem.structure_core.Section(
- nr=1,
- nazwa='IPE 200',
- materiał=1
- ),
- rfem.structure_core.Node(
- nie=1
- ),
- rfem.structure_core.Node(
- nie=2,
- współrzędna_1=6,0
- ),
- rfem.structure_core.Line(
- nr=1,
- definicja_węzły=[1,2]
- ),
- rfem.structure_core.Member(
- nr=1,
- linia=1,
- section_start=1
- ),
- rfem.types_for_nodes.NodalSupport(
- nr=1,
- węzły=[1],
- sprężyna_x=inf,
- sprężyna_y=inf,
- sprężyna_z=inf,
- obrotowe_ograniczenie_x=inf,
- obrotowe_ograniczenie_y=inf,
- ograniczenie_obrotowe_z=inf
- ),
- ]
- rfem_app.create_object_list(konstrukcja)
- /kod#
Najpierw importowana jest biblioteka RFEM.
Polecenie with tworzy instancję rfem_app tej klasy. Jako argument funkcji rfem.Application () można wprowadzić klucz API. Nie jest to jednak zalecane ze względów bezpieczeństwa. Zamiast tego klucz API powinien być zapisany w pliku config.ini. Jak to dokładnie działa, wyjaśniono w szczegółowej dokumentacji API II:
W kolejnym wierszu metoda rfem_app.create_model(name='cantilever') zostaje użyta do utworzenia nowego modelu w programie RFEM. Nazwa modelu jest przenoszona jako parametr.
W kilku następnych linijkach nowe API II zasadniczo różni się od „starego” podejścia w API I. Przede wszystkim na liście konstrukcji definiowane są elementy konstrukcji. Następnie są one przesyłane wraz z poleceniem rfem_app.create_object_list(structure).