3kis commented on issue #11440: URL: https://github.com/apache/apisix/issues/11440#issuecomment-2988194977
it seems that this problem was solved in latest apisix. # proto file: ```proto syntax = "proto3"; package user; option go_package = "grpc-test/proto"; enum Gender { GENDER_UNSPECIFIED = 0; GENDER_MALE = 1; GENDER_FEMALE = 2; } message UserRequest { string name = 1; int32 age = 2; } message UserResponse { Gender gender = 1; repeated string items = 2; string message = 3; } service UserService { rpc GetUserInfo(UserRequest) returns (UserResponse) {} } ``` # grpc server code ## array containing values ```golang package main import ( "context" "fmt" "log" "net" "google.golang.org/grpc" "grpc-test/proto" ) type UserServiceServer struct { proto.UnimplementedUserServiceServer } func (s *UserServiceServer) GetUserInfo(ctx context.Context, req *proto.UserRequest) (*proto.UserResponse, error) { return &proto.UserResponse{ Gender: proto.Gender_GENDER_MALE, Items: []string{"1", "2"}, Message: "Hello world, name: " + req.Name + ", age: " + fmt.Sprint(req.Age), }, nil } func main() { listener, err := net.Listen("tcp", ":50051") if err != nil { log.Fatalf("failed to listen: %v", err) } grpcServer := grpc.NewServer() proto.RegisterUserServiceServer(grpcServer, &UserServiceServer{}) log.Println("gRPC server listening on :50051") if err := grpcServer.Serve(listener); err != nil { log.Fatalf("failed to serve: %v", err) } } ``` request result  ## array without values ```golang package main import ( "context" "fmt" "log" "net" "google.golang.org/grpc" "grpc-test/proto" ) // UserServiceServer 实现 proto 生成的接口 type UserServiceServer struct { proto.UnimplementedUserServiceServer } // GetUserInfo 实现接口 func (s *UserServiceServer) GetUserInfo(ctx context.Context, req *proto.UserRequest) (*proto.UserResponse, error) { return &proto.UserResponse{ Gender: proto.Gender_GENDER_MALE, Items: []string{}, Message: "Hello world, name: " + req.Name + ", age: " + fmt.Sprint(req.Age), }, nil } func main() { listener, err := net.Listen("tcp", ":50051") if err != nil { log.Fatalf("failed to listen: %v", err) } grpcServer := grpc.NewServer() proto.RegisterUserServiceServer(grpcServer, &UserServiceServer{}) log.Println("gRPC server listening on :50051") if err := grpcServer.Serve(listener); err != nil { log.Fatalf("failed to serve: %v", err) } } ``` request result  -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@apisix.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org