mirror of
https://github.com/go-micro/go-micro.git
synced 2024-12-24 10:07:04 +02:00
44 lines
901 B
Go
44 lines
901 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
|
|
"context"
|
|
proto "github.com/micro/go-micro/examples/service/proto"
|
|
"github.com/micro/go-micro/v2"
|
|
"github.com/micro/go-micro/v2/server"
|
|
)
|
|
|
|
type Greeter struct{}
|
|
|
|
func (g *Greeter) Hello(ctx context.Context, req *proto.Request, rsp *proto.Response) error {
|
|
rsp.Greeting = "Hello " + req.Name
|
|
return nil
|
|
}
|
|
|
|
// logWrapper is a handler wrapper
|
|
func logWrapper(fn server.HandlerFunc) server.HandlerFunc {
|
|
return func(ctx context.Context, req server.Request, rsp interface{}) error {
|
|
log.Printf("[wrapper] server request: %v", req.Endpoint())
|
|
err := fn(ctx, req, rsp)
|
|
return err
|
|
}
|
|
}
|
|
|
|
func main() {
|
|
service := micro.NewService(
|
|
micro.Name("greeter"),
|
|
// wrap the handler
|
|
micro.WrapHandler(logWrapper),
|
|
)
|
|
|
|
service.Init()
|
|
|
|
proto.RegisterGreeterHandler(service.Server(), new(Greeter))
|
|
|
|
if err := service.Run(); err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
}
|