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

antragraum-proxy

  • Clone with SSH
  • Clone with HTTPS
  • user avatar
    OZGCloud authored
    84e49ad0
    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