Cannot connect to graphql playground when using go-chi router

Deadly 提交于 2021-01-29 16:19:42

问题


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)
    }
}
...


回答1:


Turns out you have to use NewDefaultServer instead of New:

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



来源:https://stackoverflow.com/questions/60901164/cannot-connect-to-graphql-playground-when-using-go-chi-router

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!