github.com/micro/go-micro/examples@v0.0.0-20210105173217-bf4ab679e18b/metadata/srv/main.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "log" 6 "time" 7 8 hello "github.com/micro/go-micro/examples/greeter/srv/proto/hello" 9 "github.com/micro/go-micro/v2" 10 "github.com/micro/go-micro/v2/metadata" 11 12 "context" 13 ) 14 15 type Say struct{} 16 17 func (s *Say) Hello(ctx context.Context, req *hello.Request, rsp *hello.Response) error { 18 md, ok := metadata.FromContext(ctx) 19 if !ok { 20 rsp.Msg = "No metadata received" 21 return nil 22 } 23 log.Printf("Received metadata %v\n", md) 24 rsp.Msg = fmt.Sprintf("Hello %s thanks for this %v", req.Name, md) 25 return nil 26 } 27 28 func main() { 29 service := micro.NewService( 30 micro.Name("go.micro.srv.greeter"), 31 micro.RegisterTTL(time.Second*30), 32 micro.RegisterInterval(time.Second*10), 33 ) 34 35 service.Init() 36 37 hello.RegisterSayHandler(service.Server(), new(Say)) 38 39 // Run server 40 if err := service.Run(); err != nil { 41 log.Fatal(err) 42 } 43 }