如何使用相同的参数查询 Graphql 2 对象
Posted
技术标签:
【中文标题】如何使用相同的参数查询 Graphql 2 对象【英文标题】:How to query Graphql 2 objects with the same argument 【发布时间】:2019-10-05 13:12:34 【问题描述】:我正在实施 GraphQL 以使用网络驱动程序从网络查询数据。
我的问题是我无法弄清楚如何使用一个参数作为 2 个不同查询的输入。所以基本上它是从 2 个不同的站点查询数据并且具有相同的输入,通常是 4 个字符的符号。
我希望我的查询看起来像什么。
Webpage1(symbol:"AABC")
data_from_site,
some_other_data
Webpage2(symbol:"AABC") ##get rid of this Double attribute entry
data_from_page2
我怎样才能只传递一个参数并从两个站点获取数据? 所以它将在解析器使用的根上下文中。
我对 GraphQL 相当陌生,并尝试定义单独的 GraphQLObjectType 以解决此问题。但我真正要寻找的是同一对象中的统一数据和从父对象解析的参数。
var schema = new GraphQLSchema(
query: new GraphQLObjectType(
name: 'Query',
fields:
Webpage1:
type: Website1,
args:
symbol: type: GraphQLString ,
//date: type: GraphQLString
,
resolve: function (_, symbol )
return
symbol
;
,
Webpage2:
type: History,
resolve: function (_, symbol )
return
symbol
;
)
)
【问题讨论】:
【参考方案1】:如果我正确理解您的问题,您可以保持架构不变,并在发送查询时使用变量:
query MyQuery($mySymbol: String)
Webpage1(symbol:$mySymbol)
data_from_site
some_other_data
Webpage2(symbol:$mySymbol)
data_from_page2
变量在文档顶部定义,作为操作定义的一部分。一旦定义,它们可以在文档中使用相同类型的文字值的任何地方使用任意次数。您可以查看有关变量here 和规范here 的官方教程。
【讨论】:
以上是关于如何使用相同的参数查询 Graphql 2 对象的主要内容,如果未能解决你的问题,请参考以下文章