-
Notifications
You must be signed in to change notification settings - Fork 558
Open
Description
% grpcurl -version
grpcurl 1.9.3
syntax = "proto3";
package demo;
option go_package = "./demo;demo";
import "google/protobuf/timestamp.proto";
service Demo {
rpc Test (TestRequest) returns (TestResponse);
}
message TestRequest {
google.protobuf.Timestamp date_of_birth = 1;
string name = 2;
}
message TestResponse {
string result = 1;
}
simple go-grpc server
package main
import (
"context"
"fmt"
"log"
"net"
"test/demo"
"google.golang.org/grpc"
"google.golang.org/grpc/reflection"
)
type server struct {
demo.UnimplementedDemoServer
}
func (s *server) Test(ctx context.Context, req *demo.TestRequest) (*demo.TestResponse, error) {
dob := "nil"
if req.DateOfBirth != nil {
dob = req.DateOfBirth.AsTime().String()
}
return &demo.TestResponse{
Result: fmt.Sprintf("Hello, %s! Date of birth: %s", req.Name, dob),
}, nil
}
func main() {
lis, err := net.Listen("tcp", ":8082")
if err != nil {
log.Fatalf("listen: %v", err)
}
grpcServer := grpc.NewServer()
demo.RegisterDemoServer(grpcServer, &server{})
reflection.Register(grpcServer)
fmt.Println("gRPC listening on :8082")
if err := grpcServer.Serve(lis); err != nil {
log.Fatalf("serve: %v", err)
}
}
% protoc --version
libprotoc 32.1
% grpcurl -plaintext -d '{"name":"Ivan", "date_of_birth": {"seconds": 820454400, "nanos": 0}}' localhost:8082 demo.Demo/Test
Error invoking method "demo.Demo/Test": error getting request data: json: cannot unmarshal object into Go value of type string
Metadata
Metadata
Assignees
Labels
No labels