Не удается подключиться к игровой площадке graphql при использовании роутера go-chi
Я использую gqlgen для создания сервера go graphql.
В учебном пособии настройка по умолчанию для localhost:8080
работает отлично.
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))
}
...
Однако, если я переключаюсь на маршрутизатор пакета Chi, я получаю ошибку 400:
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 ответ
Решение
Оказывается, вам нужно использовать NewDefaultServer
вместо того New
:
srv := handler.NewDefaultServer(generated.NewExecutableSchema(generated.Config{Resolvers: &graph.Resolver{}}))