CMI API
Die CMI API ist eine Standard API für Schnittstellen zur MetaTool Lösung
Allgemeines
- Status: Freigegeben
- Fachliche Ansprechperson: Fetai Gezim
- Technische Ansprechperson: Milan Bursac / Gregor Bosshard
- Nur für speziellen Kunden: Nein
Strategische Einordnung
Durch zu die CMI API soll eine standartisierte Schnistelle zur Verfügung stehen, über welche Partner und Kunden Integrationen ins CMI Universum umsetzen können.
Technisches
Eigenschaften
- Stateless:
- Die eigentliche API ist stateless
- Das Konfigurationsmenü (Config UI) ist nicht stateless
- Skalierbar/Multi-Instanzfähig:
- Die eigentliche API ist skalierbar
- Das Konfigurationsmenü ist eingeschränkt skalierbar, regelmässige Verbindungsunterbrüche sind zu erwarten. Eine finale Lösung existiert noch nicht. Folgende Einstellungen sind erforderlich:
- Data Protector und SignalR sind für den skalierten Betrieb konfiguriert
- Die Load-Balancer verwenden Sticky-Sessions
- Mehrmandantenfähig: Ja
- Proxyfähig: Ja, siehe Forwarded Headers
- Laufzeitverhalten: Durgehend laufender Service
Technologiestack
Folgende Technologien werden eingesetzt:
- ASP.NET Core 6
- Blazor mit WebSockets (SignalR)
- Optional: Redis (SignalR-Backend)
- Swagger
Weitere Dokumente
- Integrationsleitfaden
- Installationsanleitung
- Systemkonfiguration
- API-Konfiguration
- Swagger Dokumentation
- TentaQL Query
- STS
- Beispielkonfiguration CMI STS 3.x
Entwicklerhinweise
Für den schnellen Testbetrieb mit Redis kann auf dem Entwicklungssystem das Docker Image von Redis verwendet werden um eine temporäre Redis Instanz zu erhalten. Mit docker run --name redis -p 6379:6379 redis
kann ein Container gestartet werden. Der Connection String localhost:6379,connectTimeout=5000
kann in diesem Fall konfiguriert werden.