GO Protoc与GRPC 记录

2023-04-01  本文已影响0人  一天天的啊哈哈

做个笔记

官方文档: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

上一篇 下一篇

猜你喜欢

热点阅读