【问题标题】:Can I set a default context in an GraphQL request header?我可以在 GraphQL 请求标头中设置默认上下文吗?
【发布时间】:2020-01-04 01:16:24
【问题描述】:

我正在编写一个对同一个 GraphQL 端点进行大量 API 调用的应用程序。大多数我们使用相同的授权标头,但少数需要不同的访问令牌。在研究这个问题时,看起来我可以使用标头上下文来解决这个问题,但问题是我只想设置一次端点,所以一旦我加载架构它就会崩溃,因为尚未设置上下文.

HTTP = GraphQL::Client::HTTP.new("https://example.com") do
    def headers(context)
      {"Authorization": context[:access_token]}
    end
  end
 # code breaks at below line because context hasn't been set
  SCHEMA = GraphQL::Client.load_schema(HTTP)

我希望能够设置一些默认值,例如 {"Authorization": context[:master_token]=ENV.fetch(MASTER_TOKEN)}

有人知道我该怎么做吗?

【问题讨论】:

    标签: ruby-on-rails http graphql


    【解决方案1】:

    想通了。

    原来做一个简单的条件赋值就可以了。

    {"Authorization": context[:token] ||= ENV.fetch(MASTER_TOKEN)}

    所以如果context[:token]nil,它将默认为MASTER_TOKEN

    【讨论】:

      猜你喜欢
      • 2012-12-18
      • 2019-10-25
      • 2021-02-05
      • 1970-01-01
      • 1970-01-01
      • 2020-06-23
      • 2017-12-02
      • 2022-08-12
      • 2013-01-09
      相关资源
      最近更新 更多