Aan de slag met API - Basis 01

Dit artikel is ook beschikbaar in:
Het doel van de tutorial is om een basisuitleg te geven over hoe je aan de slag gaat met API, je eerste project opent, de simulatie uitvoert en de resultaten afdrukt in de console. Dit deel is een eerste vereiste voordat je verder gaat met het volgende deel van je opleiding.

Wat is API (Application Programming Interface)

Een verzameling regels en protocollen waarmee verschillende softwaretoepassingen met elkaar kunnen communiceren. Het definieert hoe verzoeken en antwoorden moeten worden gestructureerd, zodat ontwikkelaars vooraf gedefinieerde functies of diensten kunnen gebruiken zonder hun interne werking te begrijpen.

REST API in IDEA StatiCa Connection - is een lokaal gehoste webservice die de REST-principes volgt, waardoor systemen kunnen communiceren met behulp van standaard HTTP-methoden om bewerkingen uit te voeren op bronnen, meestal weergegeven in JSON-formaat.

Bronnen en GITHUB

De bron van bestaande en voorgedefinieerde voorbeelden is gelinkt op onze GitHub:

Hoe te beginnen

De tutorial wordt geïntroduceerd in combinatie met de programmeertaal Python. Je kunt de nieuwste versie hier downloaden. Je kunt veel Integrated Development Environments (IDE) gebruiken als hulpmiddelen voor efficiënt coderen, debuggen en testen. Hier zijn enkele opties:

API uitvoeren

De API launcher kun je vinden in de map waar je laatste versie van IDEA StatiCa is opgeslagen. Voer gewoon het .exe-bestand uit.

inline image in article

Als je "IdeaStatiCa.ConnectionRestApi.exe" uitvoert, opent de Command Prompt, zie je je localhost en kun je de Swagger-app starten. Hiermee bekijk je de code-structuur voor het aansturen van de API. Druk op Ctrl + linkermuisknop om Swagger te openen.

inline image in article

De Swagger in de online modus geeft je een handleiding over de opties van de API voor het ontwerpen van verbindingen.

inline image in article

Hoe Python te openen en het API-pakket te installeren

Ik gebruik Pycharm, dat alle stappen beschrijft. Het werkt op dezelfde manier met de andere tools. Open Python en maak een nieuw project aan.

inline image in article

Installeer het pakket "ideastatica_connection_api". Begin met het openen van de terminal en schrijf "pip install ideastatica_connection_api". Als je deze opdracht uitvoert, wordt de bibliotheek voor API geïnstalleerd.

inline image in article

De bovenstaande stappen zijn verplicht. Anders zal de API niet naar behoren werken.

Open een project in de desktop-app

Het doel is om de simulatie en uitvoer via de Python interface te besturen en de resultaten direct in de console af te lezen.

Open de splice-verbinding en voer de berekening voor LE1 uit en ontvang de resultaten. Zoals je kunt zien worden alle controles uitgevoerd. Je kunt doorgaan met python.

inline image in article

Python script

Importeer de pakketten die het gebruik van de berekening mogelijk maken en koppel met de localhost URL.

Broncode:

## Import of API package

from ideastatica_connection_api.models.con_calculation_parameter import ConCalculationParameter

## Link with baseUrl

import ideastatica_connection_api.connection_api_service_attacher as connection_api_service_attacher

inline image in article

Configureer de logging via de variabele "baseUrl", die je localhost zal ophalen. Koppel in de tweede stap het absolute pad van je IDEA StatiCa Connection bestand.

Broncode:

## Configure logging

baseUrl = "http://localhost:5000"

## Absolute path into folder with your python script and connection module

project_file_path = r'C:\Users\LukasJuricek\Desktop\Connection and Python - How to get started with API - basics 01\01_Tutorial_ final\Splice.ideaCon'

print(project_file_path)

inline image in article

Koppel de client aan een al draaiende service (1). Gebruik het blok try/except - omdat het try-blok een fout oproept, wordt het except-blok uitgevoerd. In de eerste fase is het nodig om het project te openen (2) en het project ID van je project te vinden dat uniek is voor elk IDEA StatiCa project (3). Als je het script uitvoert, kun je het afgedrukte pad + de unieke ID uitlezen (4).

Broncode:

# Create client attached to already running service

with connection_api_service_attacher.ConnectionApiServiceAttacher(baseUrl).create_api_client() as api_client:

    try:

        ## Open the project

        openProject = api_client.project.open_project_from_filepath(project_file_path)

        ## Unique project ID that provide the control over the model

        projectId = api_client.project.active_project_id

        print(projectId)

inline image in article

Extraheer de "connection_ID" die de verbinding identificeert die wordt berekend (1). Voer de simulatie uit met de variabele "calculation_run," die twee verplichte parameters nodig heeft die tussen haakjes staan (2). Als de simulatie wordt uitgevoerd, zie je de verbindings-ID en informatie dat je analyse is geslaagd (3).

Broncode:

        ## Opening project that will be calculated

        connection = openProject.connections[0]

        print(connection)

        ## Assigning connection ID

        connection_ID = ConCalculationParameter()

        connection_ID.connection_ids = [connection.id]

        print(connection_ID.connection_ids)

        ## Running the simulation

        calculation_run = api_client.calculation.calculate(projectId,connection_ID)

        print('Finished')

inline image in article

In de laatste ronde onderzoek je hoe je de resultaten kunt afdrukken(1) en hoe je kunt lussen over alle unity checks(2) die standaard worden weergegeven op het bureaublad(3).

Broncode:

        ## Postprocessing - extract the unity check of connection

        Results = calculation_run[0].result_summary

        ## Loop over all unity checks like plates, bolts, welds

        for results in Results:

            print(results.unity_check_message)

    except Exception as e:

        print("Operation failed : %s\n" % e)

inline image in article

Conclusie

Je hebt ervaring met API voor het ontwerpen van verbindingen. Je hebt geleerd welke tools geïnstalleerd moeten worden, hoe je de REST API service verbindt en hoe je met Python code omgaat om de resultaten te krijgen.

Voorbeeldbestanden

Gerelateerde artikelen