0

我正在使用 gqlgen 创建一个 go graphql 服务器。

在本教程中,默认设置可以localhost:8080正常工作。

服务器.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 错误:

服务器.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)
    }
}
...

在此处输入图像描述

4

1 回答 1

0

原来你必须使用NewDefaultServer而不是New

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

于 2020-03-31T02:33:45.587 回答