我正在编写一个对同一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)}
有人知道我该怎么做吗?
答案 0 :(得分:0)
想通了。
结果证明,执行简单的条件分配可以解决问题。
{"Authorization": context[:token] ||= ENV.fetch(MASTER_TOKEN)}
因此,如果context[:token}
是nil
,它将默认为MASTER_TOKEN