Skip to content
Snippets Groups Projects
user avatar
OZGCloud authored
051274ac
History

Info-manager-proxy

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

Proto Dateien anpassen

Die *.proto Dateien, die die verwendeten GRPC Apis des Proxys definieren müssen aus den entsprechenden Projekten in das Verzeichnis api/proto kopiert werden.

Die Projekte sind:

Damit die Code generierung funktioniert müssen die proto-Dateien aktuell noch angepasst werden. Dazu muss in jede Datei die Zeile option go_package = "de.ozgcloud.info"; hinzugefügt werden, damit die erzeugten Quellcode-Dateien im selben go package liegen.

Generierung konfigurieren

Die Generierung des Gateways kann mit den Dateien

  • api/gateway-config.yml - go Code für den Gateway
  • api/openapi-config.yml - für die Erzeugung der swagger json Dateien

konfiguriert werden.

Protobuf-Code generieren

buf generate

Erzeugt dann den Code für das Gateway und auch die Datei gen/openapiv2/infomanager.swagger.json. Diese Datei kann dann in anderen Projekten verwendet werden um die nötige DTO Klassen zu erzeugen.

Anwendung starten

ACTIVE_PROFILE=local go run cmd/info-manager-proxy/main.go

Config

config.yml is the default config for deployment

Config-Datei

config-local.yml is the config file for local development setting ACTIVE_PROFILE=local will load the config-local.yml

Config-Datei

server:
  port: Port des HTTP Servers (int)
grpc:
  mock: lokalen gRPC Server mocken (bool)
  url: URL des Ziel-gRPC-Servers im host:port Format (string)
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/info-mamager-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/info-manager-proxy/main.go "vX.X.X" auf "vX.X.X-beta.x" ändern
  • Master Branch pushen