github.com/micro/go-micro/examples@v0.0.0-20210105173217-bf4ab679e18b/greeter/api/graphql/main.go (about) 1 package main 2 3 import ( 4 "github.com/99designs/gqlgen/handler" 5 gql "github.com/micro/go-micro/examples/greeter/api/graphql/graphql" 6 helloProto "github.com/micro/go-micro/examples/greeter/srv/proto/hello" 7 "github.com/micro/go-micro/v2/client" 8 "github.com/micro/go-micro/v2/util/log" 9 "github.com/micro/go-micro/v2/web" 10 ) 11 12 func main() { 13 // create new web service 14 service := web.NewService( 15 web.Name("go.micro.api.greeter"), 16 web.Version("latest"), 17 web.Address(":8085"), 18 ) 19 20 // initialise service 21 if err := service.Init(); err != nil { 22 log.Fatal(err) 23 } 24 25 // RPC client 26 cl := helloProto.NewSayService("go.micro.srv.greeter", client.DefaultClient) 27 28 // register graphql handlers 29 service.Handle("/", handler.Playground("GraphQL playground", "/query")) 30 service.Handle("/query", handler.GraphQL(gql.NewExecutableSchema(gql.Config{Resolvers: &gql.Resolver{Client: cl}}))) 31 32 // run service 33 if err := service.Run(); err != nil { 34 log.Fatal(err) 35 36 } 37 }