Skip to content

Backend Client

Cedrik Hoffmann edited this page Aug 4, 2024 · 6 revisions

TL;DR

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

Beschreibung

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.

Backend Client generieren

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

Was macht das Skript?

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.

Clone this wiki locally