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  }