794x
001921
27.11.2024

API II

Cet article donne une courte introduction à l’API II de RFEM 6.

Qu'est-ce qu'une API ?

Une API (Application Programming Interface) est une interface permettant la communication entre différents logiciels. Une API définit des règles sur la manière dont les informations sont échangées entre les logiciels.

Les API II permettent d’accéder aux fonctionnalités de RFEM 6 / RSTAB 9 à l’aide d’un logiciel personnalisé. Il est par exemple possible de générer des modèles, de créer des charges, de lancer le calcul et enfin de lire les résultats.

Dans RFEM 6 / RSTAB 9, il existe déjà une API, l’interface de service web (API I). Celle-ci reste également disponible. Il n’est donc pas nécessaire de convertir les logiciels existants à l’API II.

Lorsque de nouvelles fonctionnalités sont ajoutées à RFEM 6 / RSTAB 9, elles ne seront disponibles que dans l’API II. L’API I reste « figée » à son état actuel.

Quelles sont les différences techniques par rapport à la précédente API ?

Tout d’abord, les deux interfaces reposent sur la technologie de service Web. RFEM 6 / RSTAB 9 communique donc avec le logiciel client via le protocole HTTP (ou le protocole HTTPS).

Dans l’API I, le client et le serveur échangent des messages au format SOAP. En revanche, l’API II utilise le protocole gRPC à la place.

Avec SOAP, les messages sont échangés au format XML. La communication via SOAP a relativement beaucoup de surcharges.

En revanche, avec gRPC, les messages sont échangés dans un format binaire léger basé sur des buffers de protocole. C’est beaucoup plus efficace que les formats basés sur du texte comme XML ou JSON.

gRPC utilise le protocole HTTP/2 plus récent, ce qui rend également le transfert plus efficace.

Dans l’API II, il est possible que plusieurs objets soient regroupés dans une liste et ensuite transmis. Ainsi, de nombreux petits appels API ne sont plus requis, mais seulement quelques-uns. Cela augmente également l’efficacité. L’exemple ci-dessous montre comment fonctionne cette technique par lot.

Toutes ces mesures visant à améliorer l’efficacité font que la communication via la nouvelle API II est environ 10 fois plus rapide que via l’API I.

L’API II permet d’exécuter le même code sur trois plates-formes différentes sans modifications.

  1. Comme un programme Python autonome qui accède à un RFEM 6 installé localement ou sur le réseau.
  2. Dans la console de script interne de RFEM 6.
  3. Dans le Cloud Dlubal.

Programme autonome

Sur votre ordinateur, une version normale de RFEM 6 est installée. Votre programme Python communique avec RFEM via l’API II.

Console de script

Votre script est exécuté directement dans la console de script de RFEM.

Cloud Dlubal

Ce cas d’utilisation ne requiert aucune installation locale de RFEM. 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 en termes de facturation ?

Pour l’utilisation de l’API I, des frais mensuels d’utilisation étaient facturés, indépendamment de l’utilisation réelle.

Avec la nouvelle API II, la facturation est désormais en fonction de l’utilisation. Cela signifie que l’appel de certaines fonctions API peut être payant. La facturation se fait en crédits Dlubal, qui peuvent être achetés dans la boutique en ligne.

Générer 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 qui sert à l’identification et à l’authentification.

Les utilisateurs peuvent générer des clés API dans l’Extranet.

Chaque clé API générée est associée à la « société »'. Cela signifie que chaque utilisateur associé à la société peut utiliser les clés.

Il est possible et souvent également judicieux de générer plusieurs clés API. Cela n’engendre pas de surcoûts. Il est par exemple judicieux de générer une clé propre pour chaque projet, cela permet à l’utilisateur de différencier les projets individuels dans sa facturation interne.

Installation de l’interface

Le package pour l’interface est disponible via PiPI. Utilisez la commande suivante pour installer le package :

pip install dlubal.api

Exemple de programme

Un petit exemple montre comment utiliser la nouvelle API II. Un porte-à-faux en IPE 200 est créée.

Voici le code du programme :

import dlubal.api.rfem as rfem

with rfem.Application() as rfem_app:

    rfem_app.create_model(name='cantilever')
    rfem_app.delete_all_objects()

    inf = float('inf')

    structure = [
        rfem.structure_core.Material(
            no=1,
            name='S235'
        ),
        rfem.structure_core.Section(
            no=1,
            name='IPE 200',
            material=1
        ),
        rfem.structure_core.Node(
            no=1
        ),
        rfem.structure_core.Node(
            no=2,
            coordinate_1=6.0
        ),
        rfem.structure_core.Line(
            no=1,
            definition_nodes=[1,2]
        ),
        rfem.structure_core.Member(
            no=1,
            line=1,
            section_start=1
        ),
        rfem.types_for_nodes.NodalSupport(
            no=1,
            nodes=[1],
            spring_x=inf,
            spring_y=inf,
            spring_z=inf,
            rotational_restraint_x=inf,
            rotational_restraint_y=inf,
            rotational_restraint_z=inf
        ),
    ]

    rfem_app.create_object_list(structure)

Tout d’abord, la bibliothèque RFEM est importée.

Avec la commande with, l’instance rfem_app de cette classe est créée. En argument de rfem.Application(), la clé API peut être passée. Pour des raisons de sécurité, cela est cependant déconseillé. À la place, la clé API devrait être stockée dans un fichier config.ini. La documentation détaillée de l’API II explique comment faire :

Dans la ligne suivante, un nouveau modèle RFEM est créé avec la méthode rfem_app.create_model(name='cantilever'). Le nom du modèle peut être passé en paramètre.

Dans les lignes de programme suivantes, la nouvelle API II diffère fondamentalement de l'approche précédente de l’API I. Dans la liste structure, les éléments de structure sont d’abord définis. Ensuite, ils sont transmis ensemble avec la commande rfem_app.create_object_list(structure).


Auteur

M. Faulstich est responsable de l'assurance qualité du programme RFEM et fournit également une assistance technique.

Liens


;