go grpc環境搭建

鵬二暴不想只當程式設計師發表於2020-12-23

1. 安裝protobuf v3.*
匯出到PATH路徑

2. 安裝protoc的go外掛
$ go get google.golang.org/protobuf/cmd/protoc-gen-go \
         google.golang.org/grpc/cmd/protoc-gen-go-grpc
         
  go get  github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway \
    github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2
    
$ export PATH="$PATH:$(go env GOPATH)/bin"

3. 編譯pb檔案生成pb結構和grpc service定義
protoc --go_out=. --go_opt=paths=source_relative  --go-grpc_out=. --go-grpc_opt=paths=source_relative api/*.proto

4. 編譯pb檔案反向代理
   protoc -I . --grpc-gateway_out . \
     --grpc-gateway_opt logtostderr=true \
     --grpc-gateway_opt paths=source_relative \
     --grpc-gateway_opt generate_unbound_methods=true \
     api/*.proto

5.生成api描述文件
protoc -I . --openapiv2_out ./api/ --openapiv2_opt logtostderr=true    pb/*.proto

    _ "github.com/gogo/protobuf/gogoproto"
    proto "github.com/golang/protobuf/proto"
    authpb "go.etcd.io/etcd/api/v3/authpb"
    mvccpb "go.etcd.io/etcd/api/v3/mvccpb"
    _ "google.golang.org/genproto/googleapis/api/annotations"
    grpc "google.golang.org/grpc"
    codes "google.golang.org/grpc/codes"
    status "google.golang.org/grpc/status"

 curl -X POST http://192.168.2.172:8081/pplat.PPlatService/ListChannels
 

相關文章