做个笔记
官方文档:https://grpc.io/docs/languages/go/quickstart/
新版使用
$ protoc --go_out=. --go_opt=paths=source_relative \
--go-grpc_out=. --go-grpc_opt=paths=source_relative \
helloworld/helloworld.proto
or
$ protoc -I . \
--go_out ./gen/go/ --go_opt paths=source_relative \
--go-grpc_out ./gen/go/ --go-grpc_opt paths=source_relative \
your/service/v1/your_service.proto
grpc-gateway使用:https://github.com/grpc-ecosystem/grpc-gateway
如果报错:protoc-gen-grpc-gateway: 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
--grpc-gateway_out: protoc-gen-grpc-gateway: Plugin failed with status code 1.
表示grpc-gateway未找到,正常按照官方文档走的话,出的这个错,大概率是Go的配置问题,记得把GOPATH/bin添加到系统PATH里面,如下(主要是添加路径)
// 我的是zsh,查看一下有没有添加GOPATH
cat .zshrc
// 编辑
vim ~/.zshrc
// 按 i 进入编辑模式,然后添加你的路径
export GOPATH=/Users/**/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN
// 然后按 esc 退出编辑模式 按 :wq 保存退出
// 配置生效
source ~/.zshrc
记录一下自己的gen.sh
protoc -I . \
--go_out ./gen/go/ --go_opt paths=source_relative \
--go-grpc_out ./gen/go/ --go-grpc_opt paths=source_relative \
my.proto
protoc -I . --grpc-gateway_out ./gen/go \
--grpc-gateway_opt paths=source_relative \
--grpc-gateway_opt grpc_api_configuration=my.yaml \
my.proto
PROTO_PATH=./auth/api
GO_OUT_PATH=./auth/api/gen/v1
protoc -I $PROTO_PATH \
--go_out $GO_OUT_PATH --go_opt paths=source_relative \
--go-grpc_out $GO_OUT_PATH --go-grpc_opt paths=source_relative \
auth.proto
protoc -I $PROTO_PATH --grpc-gateway_out $GO_OUT_PATH \
--grpc-gateway_opt paths=source_relative \
--grpc-gateway_opt grpc_api_configuration=$PROTO_PATH/auth.yaml \
auth.proto
这个写的不错:https://www.cnblogs.com/remixnameless/p/15975971.html
网友评论