1

我想在测试请求中添加标头。此外,我想将我想在解析器中访问的任何标题移动到上下文中。

PR #861提供了一种在整个客户端或每个请求中添加 HTTP 标头的方法。这对我不起作用。我尝试像这样向客户端添加标头:

c = client.New(srv, client.AddHeader("Header", "HeaderValue"))

没有错误或任何东西,只是没有添加标题。我还尝试在请求中添加标头作为参数c.MustPost并得到相同的结果。

也许中间件可以提供帮助

var srv = handler.NewDefaultServer(generated.NewExecutableSchema(NewRootResolvers()))
// Maybe a middleware to wrap around srv
var c = client.New(srv)

版本

  • gqlgen 版本 - 最新
  • 去版本 - 最新

正是这些要求:https ://github.com/99designs/gqlgen/issues/1330

4

1 回答 1

1

我已经找到了解决方案。我们可以使用选项为请求添加上下文...

srv := handler.NewDefaultServer(generated.NewExecutableSchema(generated.Config{Resolvers: &resolvers}))
c := client.New(srv, func(bd *client.Request){
    bd.HTTP = bd.HTTP.WithContext(context.WithValue(bd.HTTP.Context(), "key", "Value"))
})

有了这个,我们可以将标题作为解析器上下文。

于 2021-04-19T10:47:05.827 回答