_examples/starwars/server/server.go (28 lines of code) (raw):

package main import ( "context" "fmt" "log" "net/http" "github.com/99designs/gqlgen/_examples/starwars" "github.com/99designs/gqlgen/_examples/starwars/generated" "github.com/99designs/gqlgen/graphql" "github.com/99designs/gqlgen/graphql/handler" "github.com/99designs/gqlgen/graphql/handler/transport" "github.com/99designs/gqlgen/graphql/playground" ) func main() { srv := handler.New(generated.NewExecutableSchema(starwars.NewResolver())) srv.AddTransport(transport.GET{}) srv.AddTransport(transport.POST{}) srv.AroundFields(func(ctx context.Context, next graphql.Resolver) (res any, err error) { rc := graphql.GetFieldContext(ctx) fmt.Println("Entered", rc.Object, rc.Field.Name) res, err = next(ctx) fmt.Println("Left", rc.Object, rc.Field.Name, "=>", res, err) return res, err }) http.Handle("/", playground.Handler("Starwars", "/query")) http.Handle("/query", srv) log.Fatal(http.ListenAndServe(":8080", nil)) }