grpc生成go文件命令

标题: grpc生成go文件命令

类型: Golang

内容:

 一、 生成tag.bp.go文件命令:

  1、protoc --go_out=plugins=grpc:../../../modules/course/info/ ./proto_src/course/info/info.proto

  2、protoc --proto_path=googleapis-master --proto_path=proto --go_out=plugins=grpc:. ./proto/*.proto

  其中 :

   1) grpc:../../../modules/course/info/ 表示文件的生成目录

   2) ./proto_src/course/info/info.proto 表示 info.proto 的文件

   3) --proto_path指的是寻找文件的目录

 

遇到的问题

syntax = "proto3";
package proto;
option go_package = "proto_pub/common;common";

//todo::生成proto文件时这个地方总是引入不成功,报错, 
//解决:  使用--proto_path这个命令,指定项目先文件的目录,这个文件在googleapis-master这个包文件中
import "google/protobuf/any.proto";    

message Pager {
 int64 page = 1;
 int64 page_size = 2;
 int64 total_rows = 3;
}

message Error {
 int32 code = 1;
 string message = 2;
 google.protobuf.Any detail = 3;
}

二、生成tag.pb.gw.go文件的命令: 

注:一定要选取具体的问题生成否则会报错

protoc --proto_path=googleapis-master --proto_path=proto --grpc-gateway_out=logtostderr=true:. ./proto/tag.proto

生成这个文件时要加上下面这几行代码:

import "google/api/annotations.proto";


service TagService {
 rpc GetTagList(GetTagListRequest) returns (GetTagListReply){
  option (google.api.http) = {
   get: "/api/v1/tags"
  };
 }
}

三、生成swagger接口文件

protoc --proto_path=googleapis-master --proto_path=proto --swagger_out=logtostderr=true:. ./proto/tag.proto

Guess you like

Origin blog.csdn.net/weixin_46742102/article/details/109680168