grpc 多种 returns 类型

grpc multiple returns types

让 return 中的另一个人使用服务的最佳方法是什么?我的意思是,我希望单个方法能够 return 不止一种类型,在这种情况下,查找方法将 return 用户或响应

syntax = "proto3";

service UserService {
    rpc Add(User) returns (Response);
    rpc Find(Id) returns (User);
}

message Response {
    string message = 1;
}

message Id {
    string id = 1;
}

message User {
    string id = 1;
    int32 money = 2;
}
  

您可以 return 包含响应和用户的对象。

    syntax = "proto3";

    service UserService {
        rpc Add(User) returns (Response);
        rpc Find(Id) returns (FindResponse);
    }
    
    message Response {
        string message = 1;
    }
    
    message Id {
        string id = 1;
    }
    
    message User {
        string id = 1;
        int32 money = 2;
    }

    message FindResponse{
        Response response = 1;
        User user = 2;
    }