API-Architektur¶
SystemΓΌbersicht¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Internet β
β β
β ββββββββββββββββββββββββββ ββββββββββββββββββββββββββββ β
β β Sachpool-Portal β β Drittsysteme β β
β β sachpool.de β β (Partner, Tools) β β
β β β ββββββββββββ¬ββββββββββββββββ β
β β ββββββββββββββββββββ β β Port 443 (HTTPS) β
β β β MySQL β β β β
β β β (Portal-DB) β β β β
β β ββββββββββββββββββββ β β β
β βββββββββββββ¬βββββββββββββ β β
β β Port 443 (HTTPS) β β
ββββββββββββββββͺββββββββββββββββββββββββββββββββββͺββββββββββββββββββββ
β API-Key β
ββββββββββββββββ¬ββββββββββββββββββββ
β Port 80 / 443
ββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββ
β Ubuntu Server β
β api.sachpool.de β
β β
β nginx (Port 80/443) Β· PHP Β· Let's Encrypt β
β β
β Eingehend erlaubt: 22 (SSH), 80 (HTTP), 443 β
β Kein weiterer eingehender Traffic β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ
β Port 2638 (ausgehend)
ββββββββββββββββββββββββββͺβββββββββββββββββββββββββββββ
β Internes Firmennetz β β
β β β
β βββββββββββββββββ΄ββββββββββββββββββ β
β β β β
β βββββββΌβββββββββββββ ββββββββββββββββββΌββββ β
β β Salia-DB β β Salia-DB β β
β β (Produktiv) β β (Test) β β
β β SQL Anywhere β β SQL Anywhere β β
β ββββββββββββββββββββ ββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Netzwerk & Ports¶
| Richtung | Port | Protokoll | Zweck |
|---|---|---|---|
| Eingehend | 22 | SSH | Administration / Deployment |
| Eingehend | 80 | HTTP | Let's Encrypt, Redirect auf HTTPS |
| Eingehend | 443 | HTTPS | API-Traffic |
| Ausgehend | 2638 | TCP | Verbindung zur Salia-DB im Firmennetz |
Kein weiterer ein- oder ausgehender Traffic ist erlaubt.
Datenbanken¶
| Datenbank | Umgebung | Verbindung |
|---|---|---|
| Salia-DB Produktiv | Produktion | Port 2638 ins interne Firmennetz |
| Salia-DB Test | Entwicklung / QA | Port 2638 ins interne Firmennetz |
Komponenten¶
| Komponente | Beschreibung |
|---|---|
| nginx | Reverse Proxy, TLS-Terminierung (Let's Encrypt) |
| PHP | API-Logik, SQLβJSON-Mapping |
| Salia-DB | SQL Anywhere-Datenbank, erreichbar ΓΌber Port 2638 im internen Firmennetz |
| MySQL (Portal-DB) | Eigene Datenbank des Sachpool-Portals β getrennt von der Salia-DB |
| API-Key | Authentifizierung pro Drittsystem/Client |
Aktuell implementierte Schnittstellen¶
| Endpunkt | Zweck |
|---|---|
POST /token/validate |
Login-Token eines Drittsystems prΓΌfen |
Ausblick: Erweiterung der API¶
Datenbankentlastung von Transconnect¶
Perspektivisch soll der API-Server Datenbankverwaltungsaufgaben ΓΌbernehmen, die derzeit von Transconnect erledigt werden. Ziel ist es, Transconnect zu entlasten und Datenbankoperationen zentral ΓΌber die API zu kapseln:
- Einheitliche Zugriffskontrolle auf Datenbankebene
- Versionierbare Schnittstellen statt direkter DB-Verbindungen aus Drittsystemen
- Bessere Nachvollziehbarkeit (Logging, Fehlerbehandlung an einem Ort)
TODO
Konkrete Aufgaben, die von Transconnect auf die API migriert werden sollen, noch festhalten.
BiPRO-UnterstΓΌtzung¶
FΓΌr Partneranbindungen nach Branchenstandard: siehe BiPRO-Integration.