Qu’est-ce qu’une API ?
Une API (Application Programming Interface) est une interface permettant à différentes applications logicielles de communiquer entre elles. Une API définit les règles pour l’échange d’informations entre les programmes.
L’API II permet d’accéder aux fonctionnalités de RFEM 6 / RSTAB 9 avec un logiciel autoprogrammé. Cela permet par exemple de générer des modèles, de créer des charges, de lancer le calcul et de lire les résultats.
RFEM 6/RSTAB 9 dispose déjà d’une API, l’interface de service Web (API I). Celle-ci sera également conservée. Il n’est donc pas absolument nécessaire de convertir un logiciel existant en API II.
Si de nouvelles fonctionnalités sont ajoutées dans RFEM 6/RSTAB 9, elles sont uniquement disponibles dans l’API II. L’API I reste « gelé » au niveau actuel.
Quelles sont les différences techniques avec l’API précédente ?
Tout d’abord, les deux interfaces sont basées sur la technologie des services Web. Les logiciels RFEM 6 et RSTAB 9 communiquent avec le logiciel client via le protocole HTTP (ou HTTPS).
Avec l’API I, les clients et les serveurs échangent des messages au format SOAP. L’API II utilise le protocole gRPC.
SOAP échange des messages au format XML. La communication à l’aide de SOAP est relativement complexe.
En revanche, gRPC échange les messages dans un format binaire léger basé sur une mémoire tampon. Ce format est bien plus efficace que les formats textuels tels que XML ou JSON.
gRPC utilise le nouveau protocole HTTP/2, ce qui rend également la transmission plus efficace.
La nouvelle API II permet de combiner plusieurs objets dans une liste, puis de les transférer. Cela signifie que seuls quelques appels d'API sont requis, plutôt qu'un grand nombre de petits. Cela augmente également l’efficacité. L’exemple ci-dessous montre le fonctionnement de cette technique par lots.
Toutes ces mesures d’efficacité rendent la communication via la nouvelle API II environ 10 fois plus rapide que pour l’API I.
L’API II permet au même code d’être exécuté sur trois plateformes différentes sans aucune modification.
- En tant que programme Python autonome accédez à RFEM 6 localement ou sur le réseau « de manière externe ».
- Dans la console de script interne de RFEM 6.
- Dans le Cloud Dlubal.
Programme autonome
RFEM 6 est normalement installé sur votre ordinateur. Votre programme Python communique avec RFEM via API II.
Console de script
Votre script sera exécuté directement dans la console de script de RFEM.
Dlubal Software
Pour cette application, RFEM ne doit pas être installé localement. Vous écrivez votre programme d'application qui communique avec un serveur dans le cloud Dlubal. Votre programme d'application génère des données de structure et de charge sur le serveur. Le calcul est effectué sur le serveur. Votre programme d'application lit les résultats du calcul et les évalue.
Qu’est-ce qui change avec la facturation ?
L’ancienne API était payante, indépendamment de l’utilisation réelle.
La nouvelle API II modifie ce système en un modèle de facturation basé sur l’utilisation. Cela signifie que certaines fonctions de l’API sont payantes, et facturées en crédit Dlubal disponibles à l’achat dans la boutique en ligne Dlubal.
Génération d’une clé API
Pour utiliser l’API II, une clé API est requise en plus de l’abonnement au service Web. Une clé API est un texte utilisé pour l’identification et l’authentification.
L’utilisateur peut générer des clés API dans l’Extranet.
Chacune des clés API générées est assignée à une « entreprise ». Cela signifie que tout utilisateur assigné à l’entreprise peut utiliser les clés.
Il est possible et souvent utile de générer plusieurs clés API. Aucun surcoût ne vous sera occasionné. Par exemple, il est judicieux de générer une clé distincte pour chaque projet. Ainsi, l’utilisateur peut distinguer les différents projets dans sa comptabilité interne.
Installation de l'interface
Le package pour l'interface est disponible via PiPI. Exécutez la commande suivante pour installer le package :
installation pip dlubal.api
Exemple de programme
Un petit exemple démontre l’utilisation de la nouvelle API II. Une poutre en porte-à-faux avec IPE 200 est créée.
Voici le code du programme :
importer dlubal.api.rfem comme rfem
avec rfem.Application() comme rfem_app :
rfem_app.create_model(name='porte-à-faux')
rfem_app.delete_all_objects ()
inf = flotté('inf')
structure = [
rfem.structure_core.Material(
n = 1
nom='S235'
),
rfem.structure_core.Section (
n = 1
nom='IPE 200',
matériau = 1
),
rfem.structure_core.Node(
N° = 1
),
rfem.structure_core.Node(
n = 2
coordonnée_1 = 6,0
),
rfem.structure_core.Ligne (
n = 1
definition_nodes=[1,2]
),
rfem.structure_core.Member(
n = 1
ligne = 1
début_de_section = 1
),
rfem.types_for_nodes.NodalSupport(
n = 1
nodes=[1]
ressort_x=inf
ressort_y=inf
ressort_z=inf
rotational_restraint_x=inf,
rotational_restraint_y=inf,
rotational_restraint_z=inf
),
]
rfem_app.create_object_list(structure)
La bibliothèque RFEM est tout d'abord importée.
La commande with crée l'instance rfem_app de cette classe. La clé API peut être entrée comme argument pour rfem.Application(). Nous vous déconseillons cependant cette opération pour des raisons de sécurité. La clé API doit plutôt être stockée dans le fichier config.ini. Son fonctionnement est expliqué dans la documentation détaillée de l'API II :
À la ligne suivante, la méthode rfem_app.create_model(name='porte-à-faux') est utilisée pour créer un nouveau modèle RFEM. Le nom du modèle est transmis comme paramètre.
Dans les quelques lignes de code suivantes, la nouvelle API II diffère de l'« ancienne » approche de l'API I. Tout d'abord, les éléments de structure sont définis dans la liste des structures. Celles-ci sont ensuite transférées à l'aide de la commande rfem_app.create_object_list(structure).