Aan de slag met API - Basis 01
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.
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.
De Swagger in de online modus geeft je een handleiding over de opties van de API voor het ontwerpen van verbindingen.
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.
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.
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.
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
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)
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)
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')
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)
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.