1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
package main
import (
"log"
"net/http"
"github.com/graph-gophers/graphql-go"
"github.com/graph-gophers/graphql-go/relay"
)
var sdl = `
type Query {
hi: String!
_service: Service!
}
type Service {
sdl: String!
}
`
type resolver struct {
Service func() Service `graphql:"_service"`
}
func (r *resolver) Hi() string {
return "Hi from subgraph two!"
}
func service(s string) func() Service {
return func() Service {
return Service{SDL: s}
}
}
type Service struct {
SDL string
}
func main() {
opts := []graphql.SchemaOpt{graphql.UseFieldResolvers(), graphql.MaxParallelism(20)}
schema := graphql.MustParseSchema(sdl, &resolver{Service: service(sdl)}, opts...)
http.Handle("/query", &relay.Handler{Schema: schema})
log.Fatal(http.ListenAndServe(":4002", nil))
}
|