go version
: aller à la version go1.14 linux/AMD64
go.mod
module [redacted]
go 1.14
require (
github.com/golang/protobuf v1.4.0-rc.2
google.golang.org/grpc v1.27.1
google.golang.org/protobuf v1.20.0 // indirect
)
J'exécute la commande suivante:
protoc -I ./src/pbdefs/protos/ --go-grpc_out=. src/pbdefs/protos/*.proto
pour générer mes fichiers de sortie GRPC à partir de .proto
fichiers, avec j'obtiens une erreur
protoc-gen-go-grpc: program not found or is not executable
Please specify a program using absolute path or make sure the program is available in your PATH system variable
--go-grpc_out: protoc-gen-go-grpc: Plugin failed with status code 1.
le plugin manquant a été implémenté à https://github.com/grpc/grpc-go .
la commande ci-dessous devrait le réparer
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc
Le Golang Protobuf a publié une nouvelle version des tampons de protocole Go qu'ils appellent APIv2.
Étant donné qu'APIv2 n'est pas rétrocompatible avec APIv1, nous devrons donc adapter tout notre code Golang pour la nouvelle API.
Vous pouvez en savoir plus sur la nouvelle API ici et ici
Étapes de la migration:
Afin d'exécuter la nouvelle génération de code, il sera nécessaire d'installer les plugins gRPC gen suivants:
go get -u google.golang.org/protobuf/cmd/protoc-gen-go
go install google.golang.org/protobuf/cmd/protoc-gen-go
go get -u google.golang.org/grpc/cmd/protoc-gen-go-grpc
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc
Utilisez ensuite la commande suivante pour générer le code.
# generate the messages
protoc --go_out="$GO_GEN_PATH" -I "$dependecies" "$proto"
# generate the services
protoc --go-grpc_out="$GO_GEN_PATH" -I "$dependecies" "$proto"