Antragsraum-Proxy
Der Antragsraum-Proxy nimmt HTTP Requests vom Antragsraum-Server entgegen, mappt diese auf gRPC und leitet sie an den Vorgang-Manager weiter. Zum Protokollmapping von HTTP auf gRPC wird die Bibliothek gRPC-Gateway verwendet. Dadurch können die HTTP-Endpunkte inkl. des Mappings größtenteils automatisch aus proto-Dateien generiert werden.
Requests werden zunächst an den gRPC-Router weitergeleitet. Das ist ein Proxy-eigener gRPC-Server, der auf localhost und dem unter config.grpc.router.port eingetragenen Port läuft. Dort wird die Adresse des Ziel-Vorgang-Managers aus einem HTTP Header extrahiert. Der Port des Ziel-Vorgang-Managers ist konstant und wird unter config.grpc.server.port festgelegt. Anschließend leitet der gRPC-Router die gRPC Request an die URL weiter, die aus der extrahierten Adresse und dem Port zusammengesetzt wird.
Getting Started
Dependencies installieren
go mod download
go install \
github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway \
github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2 \
google.golang.org/protobuf/cmd/protoc-gen-go \
google.golang.org/grpc/cmd/protoc-gen-go-grpc
Buf installieren
https://github.com/bufbuild/buf?tab=readme-ov-file
Protobuf-Code generieren
buf generate
Anwendung starten
go run cmd/antragsraum-proxy/main.go
Config
http:
server:
port: Port des HTTP Gateways (int)
grpc:
server:
mock: gRPC Server mocken (bool)
port: Port des gRPC Servers (int)
router:
port: Port des gRPC Routers (int)
logging:
level: "ERROR" | "WARN" | "INFO" | "DEBUG"
Releasing
Diese Schritte ausführen:
- Master-Branch auschecken
- Master-Branch updaten
- Release-Branch auschecken
- Release-Branch updaten
- Master in den Release-Branch mergen - noch nicht pushen!
- Die Version von 'var version' in cmd/antragraum-proxy/main.go "vX.X.X-beta.x" auf "vX.X.X" ändern
- Commit erstellen: "release version X.X.X"
- Release Branch pushen
- Tag "X.X.X" erstellen: git tag "X.X.X"
- tag pushen: git push origin X.X.X
- Master auschecken
- Release-Branch in den Master mergen nicht pushen!
- Die Version von 'var version' in cmd/antragraum-proxy/main.go "vX.X.X" auf "vX.X.X-beta.x" ändern
- Master Branch pushen