浏览代码

support mulitple protoset files (#2190)

马守越 2 年之前
父节点
当前提交
5348375b99
共有 2 个文件被更改,包括 5 次插入4 次删除
  1. 3 2
      gateway/config.go
  2. 2 2
      gateway/server.go

+ 3 - 2
gateway/config.go

@@ -29,8 +29,9 @@ type (
 	Upstream struct {
 		// Grpc is the target of the upstream.
 		Grpc zrpc.RpcClientConf
-		// ProtoSet is the file of proto set, like hello.pb
-		ProtoSet string `json:",optional"`
+		// ProtoSets is the file list of proto set, like [hello.pb]
+		// if your proto file import another proto file, you need to write multi-file slice, like [hello.pb, common.pb]
+		ProtoSets []string `json:",optional"`
 		// Mapping is the mapping between gateway routes and Upstream rpc methods.
 		// Keep it blank if annotations are added in rpc methods.
 		Mapping []RouteMapping `json:",optional"`

+ 2 - 2
gateway/server.go

@@ -142,8 +142,8 @@ func (s *Server) createDescriptorSource(cli zrpc.Client, up Upstream) (grpcurl.D
 	var source grpcurl.DescriptorSource
 	var err error
 
-	if len(up.ProtoSet) > 0 {
-		source, err = grpcurl.DescriptorSourceFromProtoSets(up.ProtoSet)
+	if len(up.ProtoSets) > 0 {
+		source, err = grpcurl.DescriptorSourceFromProtoSets(up.ProtoSets...)
 		if err != nil {
 			return nil, err
 		}