Cannot connect to graphql playground when using go-chi router

712 Views Asked by At

I'm use gqlgen to create a go graphql server.

In the tutorial, the default setup for localhost:8080 works fine.

server.go

...
func main() {
    srv := handler.NewDefaultServer(generated.NewExecutableSchema(generated.Config{Resolvers: &graph.Resolver{}}))

    http.Handle("/", playground.Handler("GraphQL playground", "/query"))
    http.Handle("/query", srv)

    log.Fatal(http.ListenAndServe(":8080", nil))
}
...

However, if i switch to the Chi package router, I get a 400 error:

server.go

...
func main() {
    router := chi.NewRouter()

    srv := handler.New(generated.NewExecutableSchema(generated.Config{Resolvers: &graph.Resolver{}}))

    router.Handle("/", playground.Handler("GraphQL Playground", "/query"))
    router.Handle("/query", srv)

    err := http.ListenAndServe(":8080", router)
    if err != nil {
        panic(err)
    }
}
...

enter image description here

1

There are 1 best solutions below

0
On BEST ANSWER

Turns out you have to use NewDefaultServer instead of New:

srv := handler.NewDefaultServer(generated.NewExecutableSchema(generated.Config{Resolvers: &graph.Resolver{}}))