goctl 使用 proto 引入其他 proto 文件
编写 proto 文件
// role.proto 文件
syntax = "proto3";
option go_package = "./marketing";
package marketing;
message RoleCreateReq {
  string role_name = 1;
}
// user.proto 文件
syntax = "proto3";
option go_package = "./rbac";
package rbac;
import "pb/role.proto"; // 以执行 goctl 命令为起始路径
message UserCreateReq {
  string username = 1;
  string email = 2;
}
message BaseResp {
  int64 code = 1;
}
service RbacCenter{
  // RPC 服务
  rpc RoleCreate(RoleCreateReq) returns(BaseResp);
  rpc UserCreate(UserCreateReq) returns(BaseResp);
}
两个文件放在同一目录内
执行 goctl 与 原始 protoc 命令
goctl rpc protoc ./pb/user.proto --go_out=. --go-grpc_out=. --zrpc_out=. -style goZero # 生成代码
protoc ./pb/role.proto --go_out=. --go-grpc_out=.  # 生成 pb.go 数据结构文件
进入 rbaccenter 目录映射一下 type 数据类型
本文来自博客园,作者:Silent-Cxl,转载请注明原文链接:https://www.cnblogs.com/silent-cxl/articles/16533031.html

                
            
        
浙公网安备 33010602011771号