794x
001921
2024-11-27

API II

Questo articolo fornisce una breve introduzione all'API II di RFEM 6.

Cos'è un API?

Un API (Application Programming Interface) è un'interfaccia tramite la quale diverse applicazioni software possono comunicare tra loro. Un API stabilisce le regole per lo scambio di informazioni tra i programmi.

Con le API II è quindi possibile accedere alle funzioni di RFEM 6 / RSTAB 9 con software programmato autonomamente. Ad esempio, è possibile generare modelli, creare carichi, avviare il calcolo e infine leggere i risultati.

In RFEM 6 / RSTAB 9 esiste già un'API, l'interfaccia webservice (API I), che rimarrà disponibile. Pertanto, non è strettamente necessario convertire il software già creato per l'API II.

Quando in RFEM 6 / RSTAB 9 vengono aggiunte nuove funzionalità, queste saranno disponibili solo nell'API II. L'API I rimarrà "congelato" nello stato attuale.

Quali sono le differenze tecniche rispetto all'API "vecchia"?

Innanzitutto, entrambe le interfacce si basano sulla tecnologia dei webservice. Quindi, RFEM 6 / RSTAB 9 comunica con il software client tramite il protocollo HTTP (o HTTPS).

Nell'API I, client e server scambiano messaggi nel formato SOAP. Al contrario, l'API II utilizza il protocollo gRPC.

Con SOAP, i messaggi vengono scambiati nel formato XML. La comunicazione tramite SOAP ha un overhead relativamente elevato.

Al contrario, con gRPC, i messaggi vengono scambiati in un formato binario basato su buffer di protocolli leggeri. Questo è molto più efficiente dei formati basati su testo come XML o JSON.

Con gRPC viene utilizzato il nuovo protocollo HTTP/2, che rende la trasmissione ancora più efficiente.

Nell'API II è possibile che più oggetti vengano raggruppati in un elenco e poi passati. Ciò significa che non sono più necessarie molte piccole chiamate API, ma solo poche, aumentando così l'efficienza. L'esempio seguente dimostra come funziona questa tecnica batch.

Tutte queste misure di aumento dell'efficienza rendono la comunicazione tramite il nuovo API II circa 10 volte più veloce rispetto all'API I.

L'API II consente lo stesso codice di essere eseguito su tre diverse piattaforme senza modifiche.

  1. Come programma Python autonomo che accede a RFEM 6 installato localmente o in rete.
  2. Nella console degli script interna di RFEM 6.
  3. Nel cloud di Dlubal.

Programma autonomo

Sul tuo computer è installato un normale RFEM 6. Il tuo programma Python comunica con RFEM tramite API II.

Console degli script

Il tuo script viene eseguito direttamente nella console degli script di RFEM.

Cloud Dlubal

Per questo caso d'uso non è necessario installare RFEM localmente. Scrivi il tuo programma applicativo che comunica con un server nel cloud di Dlubal. Il tuo programma applicativo genera dati strutturali e di carico sul server. Il calcolo viene eseguito sul server. Il tuo programma applicativo legge i risultati del calcolo e li valuta.

Cosa cambia nella fatturazione?

Per l'utilizzo del vecchio API I c'era una tariffa mensile indipendente dall'effettivo utilizzo.

Con il nuovo API II, cambia in un modello di fatturazione basato sull'uso. Ciò significa che la chiamata di alcune funzioni API specifiche è a pagamento. Si effettua la fatturazione con i crediti Dlubal, acquistabili nel negozio online.

Generazione della chiave API

Per l'uso dell'API II è necessaria una chiave API oltre all'abbonamento al webservice. Una chiave API è un testo utilizzato per l'identificazione e l'autenticazione.

L'utente può generare le chiavi API nell'Extranet.

Ciascuna delle chiavi API generate è associata alla azienda. Ciò significa che ogni utente associato all'azienda può utilizzare le chiavi.

È possibile, e spesso anche utile, generare più chiavi API. Ciò non comporta alcun costo aggiuntivo. È utile, ad esempio, generare una chiave separata per ogni progetto, in modo che l'utente possa distinguere tra progetti nella propria fatturazione interna.

Installazione dell'interfaccia

Il pacchetto per l'interfaccia è disponibile tramite PiPI. Con il seguente comando installi il pacchetto:


pip install dlubal.api

Esempio di programma

Un piccolo esempio dimostra l'utilizzo della nuova API II. Viene creato un cantilever costituito da un IPE 200.

Ecco il codice del programma:


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)

Prima viene importata la libreria RFEM.

Con il comando with viene creata un'istanza rfem_app di questa classe. Come argomento di rfem.Application() si può passare la chiave API. Per motivi di sicurezza, tuttavia, si sconsiglia di farlo. Invece, la chiave API dovrebbe essere memorizzata in un file config.ini. Come funziona esattamente è spiegato nella documentazione dettagliata dell'API II:

Nella riga successiva, con il metodo rfem_app.create_model(name='cantilever'), viene creato un nuovo modello RFEM. Il nome del modello può essere passato come parametro.

Nelle righe del programma seguenti, l'API II si distingue fondamentalmente dal "vecchio" approccio dell'API I. Nell'elenco structure vengono definiti prima gli elementi strutturali. Quindi vengono passati insieme al comando rfem_app.create_object_list(structure).


Autore

Il signor Faulstich è responsabile della garanzia della qualità del programma RFEM e fornisce assistenza ai clienti.

Link


;