-
Notifications
You must be signed in to change notification settings - Fork 2
Backend Client
Um die Kommunikation mit unserer Backend-API zu vereinfachen, nutzen wir einen automatischen Generierungsprozess, der einen TypeScript-basierten Backend Client aus der Swagger-Api-Definition erstellt. Diese Generierung kann für die Entwicklungsumgebung oder eine lokale Instanz erfolgen. Bei Änderungen an der Backend-API sorgt das erneute Ausführen des Generierungsskripts dafür, dass der Client aktualisiert wird, ohne dass manuelle Anpassungen im Code nötig sind.
yarn generate # Erstellt einen Backend Client von app.dev.green-ecolution.de
yarn generate:local # Erstellt einen Backend Client von localhost:3000
Unser Backend-System ermöglicht es, durch eine automatische Generierung, einen Backend Client zu erstellen, der für die Kommunikation mit unserer API konzipiert ist. Die API-Definition wird über Swagger, auch bekannt als OpenAPI, zur Verfügung gestellt (siehe backend/swagger
). OpenAPI bietet einen leistungsstarken Codegenerator, der die API-Definition in Clients in verschiedenen Programmiersprachen umwandeln kann. Besonders interessant für unser Projekt ist die Fähigkeit, diese Definitionen in TypeScript umzusetzen, was eine nahtlose Integration in unsere TypeScript-basierten Frontend-Projekte ermöglicht.
Für die Generierung des Backend-Clients steht ein spezielles Skript bereit. Dieser Prozess platziert den generierten Client in einem separaten Workspace-Ordner backend-client
. Der Client kann durch folgende Befehle erstellt werden:
yarn generate # Erstellt einen Backend Client von app.dev.green-ecolution.de
yarn generate:local # Erstellt einen Backend Client von localhost:3000
Das Skript lädt die Swagger-API-Definition herunter und generiert daraus den Backend-Client in TypeScript. Dieser Client wird in einem eigenen Workspace abgelegt und kann direkt im Frontend verwendet werden. Bei zukünftigen Änderungen oder Aktualisierungen der Backend-API kann das Skript einfach erneut ausgeführt werden, sodass der Client stets auf dem neuesten Stand ist, ganz ohne manuelle Eingriffe in den Code.