Skip to content
Snippets Groups Projects
Select Git revision
  • c58e520c9bc3cd6e0e8f9cb945cbc849e65f602d
  • main default protected
  • OZG-7324-License-fix
  • release
  • 1.3.0
  • 1.2.0
  • 1.1.1
  • 1.0.0
8 results

antragraum-proxy

user avatar
OZGCloud authored
c58e520c
History

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

Config-Datei

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