mirror of
https://github.com/go-micro/go-micro.git
synced 2025-04-23 11:07:43 +02:00
145 lines
2.9 KiB
Go
145 lines
2.9 KiB
Go
package template
|
|
|
|
// MainCLT is the main template used for new client projects.
|
|
var MainCLT = `package main
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
pb "{{.Vendor}}{{lower .Service}}/proto"
|
|
|
|
"go-micro.dev/v4"
|
|
log "go-micro.dev/v4/logger"
|
|
)
|
|
|
|
var (
|
|
service = "{{lower .Service}}"
|
|
version = "latest"
|
|
)
|
|
|
|
func main() {
|
|
// Create service
|
|
srv := micro.NewService()
|
|
srv.Init()
|
|
|
|
// Create client
|
|
c := pb.NewHelloworldService(service, srv.Client())
|
|
|
|
for {
|
|
// Call service
|
|
rsp, err := c.Call(context.Background(), &pb.CallRequest{Name: "John"})
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
log.Info(rsp)
|
|
|
|
time.Sleep(1 * time.Second)
|
|
}
|
|
}
|
|
`
|
|
|
|
// MainFNC is the main template used for new function projects.
|
|
var MainFNC = `package main
|
|
|
|
import (
|
|
"{{.Vendor}}{{.Service}}/handler"
|
|
|
|
{{if .Jaeger}} ot "github.com/asim/go-micro/plugins/wrapper/trace/opentracing/v4"
|
|
{{end}} "go-micro.dev/v4"
|
|
log "go-micro.dev/v4/logger"{{if .Jaeger}}
|
|
|
|
"go-micro.dev/v4/cmd/micro/debug/trace/jaeger"{{end}}
|
|
)
|
|
|
|
var (
|
|
service = "{{lower .Service}}"
|
|
version = "latest"
|
|
)
|
|
|
|
func main() {
|
|
{{if .Jaeger}} // Create tracer
|
|
tracer, closer, err := jaeger.NewTracer(
|
|
jaeger.Name(service),
|
|
jaeger.FromEnv(true),
|
|
jaeger.GlobalTracer(true),
|
|
)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer closer.Close()
|
|
|
|
{{end}} // Create function
|
|
fnc := micro.NewFunction(
|
|
micro.Name(service),
|
|
micro.Version(version),
|
|
{{if .Jaeger}} micro.WrapCall(ot.NewCallWrapper(tracer)),
|
|
micro.WrapClient(ot.NewClientWrapper(tracer)),
|
|
micro.WrapHandler(ot.NewHandlerWrapper(tracer)),
|
|
micro.WrapSubscriber(ot.NewSubscriberWrapper(tracer)),
|
|
{{end}} )
|
|
fnc.Init()
|
|
|
|
// Handle function
|
|
fnc.Handle(new(handler.{{title .Service}}))
|
|
|
|
// Run function
|
|
if err := fnc.Run(); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|
|
`
|
|
|
|
// MainSRV is the main template used for new service projects.
|
|
var MainSRV = `package main
|
|
|
|
import (
|
|
"{{.Vendor}}{{.Service}}/handler"
|
|
pb "{{.Vendor}}{{.Service}}/proto"
|
|
|
|
{{if .Jaeger}} ot "github.com/asim/go-micro/plugins/wrapper/trace/opentracing/v4"
|
|
{{end}} "go-micro.dev/v4"
|
|
log "go-micro.dev/v4/logger"{{if .Jaeger}}
|
|
|
|
"go-micro.dev/v4/cmd/micro/debug/trace/jaeger"{{end}}
|
|
)
|
|
|
|
var (
|
|
service = "{{lower .Service}}"
|
|
version = "latest"
|
|
)
|
|
|
|
func main() {
|
|
{{if .Jaeger}} // Create tracer
|
|
tracer, closer, err := jaeger.NewTracer(
|
|
jaeger.Name(service),
|
|
jaeger.FromEnv(true),
|
|
jaeger.GlobalTracer(true),
|
|
)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer closer.Close()
|
|
|
|
{{end}} // Create service
|
|
srv := micro.NewService(
|
|
micro.Name(service),
|
|
micro.Version(version),
|
|
{{if .Jaeger}} micro.WrapCall(ot.NewCallWrapper(tracer)),
|
|
micro.WrapClient(ot.NewClientWrapper(tracer)),
|
|
micro.WrapHandler(ot.NewHandlerWrapper(tracer)),
|
|
micro.WrapSubscriber(ot.NewSubscriberWrapper(tracer)),
|
|
{{end}} )
|
|
srv.Init()
|
|
|
|
// Register handler
|
|
pb.Register{{title .Service}}Handler(srv.Server(), new(handler.{{title .Service}}))
|
|
|
|
// Run service
|
|
if err := srv.Run(); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|
|
`
|