Skip to Content
DocsClientsDotnetApplication Info

Application Info

Der ApplicationInfoClient ermöglicht es, grundlegende Informationen über die ProcessCube® Engine abzurufen. Dies ist besonders nützlich für Health Checks, Version-Abfragen und die Ermittlung der verbundenen Authority-Adresse.

Client erstellen

using ProcessCube.Engine; var engineAddress = "http://localhost:8000"; var client = ClientFactory.CreateApplicationInfoClient(engineAddress);

Engine-Informationen abrufen

GetApplicationInfoAsync()

Ruft grundlegende Informationen über die Engine ab:

using ProcessCube.Engine; var engineAddress = "http://localhost:8000"; var client = ClientFactory.CreateApplicationInfoClient(engineAddress); // Engine-Informationen abrufen var info = await client.GetApplicationInfoAsync(); Console.WriteLine($"Engine Name: {info.Name}"); Console.WriteLine($"Version: {info.Version}"); Console.WriteLine($"Description: {info.Description}");

Die GetApplicationInfoAsync()-Methode benötigt keine Authentifizierung und kann für Health Checks verwendet werden.

Authority-Adresse ermitteln

GetAuthorityAddressAsync()

Ermittelt die Adresse der verbundenen Authority:

using ProcessCube.Engine; var engineAddress = "http://localhost:8000"; var client = ClientFactory.CreateApplicationInfoClient(engineAddress); // Authority-Adresse abrufen var authorityAddress = await client.GetAuthorityAddressAsync(); Console.WriteLine($"Authority URL: {authorityAddress}");

Wenn keine Authority konfiguriert ist, gibt die Methode null zurück.

Vollständiges Beispiel

using ProcessCube.Engine; var engineAddress = "http://localhost:8000"; var client = ClientFactory.CreateApplicationInfoClient(engineAddress); try { // Engine-Informationen abrufen var info = await client.GetApplicationInfoAsync(); Console.WriteLine($"Process Engine: {info.Name} @ {info.Version}"); // Authority-Adresse ermitteln var authorityAddress = await client.GetAuthorityAddressAsync(); if (authorityAddress != null) { Console.WriteLine($"Connected Authority: {authorityAddress}"); } else { Console.WriteLine("Keine Authority konfiguriert"); } } catch (HttpRequestException ex) { Console.WriteLine($"Verbindungsfehler: {ex.Message}"); } catch (Exception ex) { Console.WriteLine($"Fehler: {ex.Message}"); }

Health Check Integration

Die Application Info API eignet sich ideal für Health Checks in ASP.NET Core:

using Microsoft.Extensions.Diagnostics.HealthChecks; using ProcessCube.Engine; public class ProcessCubeHealthCheck : IHealthCheck { private readonly string _engineAddress; public ProcessCubeHealthCheck(string engineAddress) { _engineAddress = engineAddress; } public async Task<HealthCheckResult> CheckHealthAsync( HealthCheckContext context, CancellationToken cancellationToken = default) { try { var client = ClientFactory.CreateApplicationInfoClient(_engineAddress); var info = await client.GetApplicationInfoAsync(); var data = new Dictionary<string, object> { { "engine_name", info.Name }, { "engine_version", info.Version } }; return HealthCheckResult.Healthy( $"Engine {info.Name} erreichbar", data ); } catch (Exception ex) { return HealthCheckResult.Unhealthy( "Engine nicht erreichbar", ex ); } } } // Registrierung in Startup.cs services.AddHealthChecks() .AddCheck<ProcessCubeHealthCheck>("processcube_engine");

Version-Kompatibilität prüfen

using ProcessCube.Engine; using System.Text.RegularExpressions; var engineAddress = "http://localhost:8000"; var client = ClientFactory.CreateApplicationInfoClient(engineAddress); var info = await client.GetApplicationInfoAsync(); // Version parsen (z.B. "12.3.0") var versionMatch = Regex.Match(info.Version, @"(\d+)\.(\d+)\.(\d+)"); if (versionMatch.Success) { var major = int.Parse(versionMatch.Groups[1].Value); var minor = int.Parse(versionMatch.Groups[2].Value); var patch = int.Parse(versionMatch.Groups[3].Value); // Mindestversion prüfen if (major >= 12) { Console.WriteLine("Engine-Version ist kompatibel"); } else { Console.WriteLine("Warnung: Engine-Version könnte veraltet sein"); } }

ApplicationInfo Properties

Die ApplicationInfo-Klasse enthält folgende Properties:

PropertyTypBeschreibung
NamestringName der Engine (z.B. “ProcessCube Engine”)
VersionstringVersions-String (z.B. “12.3.0”)
DescriptionstringBeschreibung der Engine-Instanz

Best Practice: Rufen Sie die Engine-Informationen beim Anwendungsstart ab, um die Konnektivität zu prüfen und die Version zu loggen.

Fehlerbehandlung

using ProcessCube.Engine; using ProcessCube.Engine.Client.Exceptions; var engineAddress = "http://localhost:8000"; var client = ClientFactory.CreateApplicationInfoClient(engineAddress); try { var info = await client.GetApplicationInfoAsync(); Console.WriteLine($"Engine: {info.Name} @ {info.Version}"); } catch (HttpRequestException ex) { // Netzwerk-Fehler oder Engine nicht erreichbar Console.WriteLine($"Verbindungsfehler: {ex.Message}"); Console.WriteLine("Prüfen Sie, ob die Engine läuft und die URL korrekt ist"); } catch (TaskCanceledException ex) { // Timeout Console.WriteLine($"Timeout: {ex.Message}"); } catch (Exception ex) { // Sonstige Fehler Console.WriteLine($"Unerwarteter Fehler: {ex.Message}"); }

Nächste Schritte