protobuf-demo/server/demo-server.go

45 lines
902 B
Go

package main
import (
"context"
"encoding/json"
"log"
"time"
"github.com/google/uuid"
"google.golang.org/protobuf/types/known/anypb"
"myschools.me/suguo/protobuf-demo/gen"
"myschools.me/suguo/protobuf-demo/model"
)
type Demo struct {
gen.UnimplementedDemoServer
}
func (d *Demo) Call(ctx context.Context, req *gen.DemoCallResquest) (*gen.DemoCallResponse, error) {
born := time.Now()
user := &model.User{
UserID: uuid.Must(uuid.NewRandom()).String(),
Name: "abc",
Sex: "male",
Born: &born,
Acc: &model.Account{
Logname: "ssdf@sss.com",
Last: &time.Time{},
},
}
obj, err := json.Marshal(user)
if err != nil {
log.Fatalln(" is not proto.Message", err)
return nil, nil
}
result := &gen.DemoCallResponse{
Result: req.C1,
Data: &anypb.Any{
TypeUrl: "myschools.me/wodeschool/protobuf-demo/model/User",
Value: obj,
},
}
return result, nil
}