繁体   English   中英

如何使用相同的参数查询Graphql 2对象

[英]How to query Graphql 2 objects with the same argument

我正在实现GraphQL以使用Web驱动程序从Web查询数据。

我的问题是我无法弄清楚如何使用一个参数作为2个不同查询的输入。 因此,基本上它是从2个不同的站点查询数据,并具有相同的输入,通常是4个字符的Symbol。

我希望查询看起来像什么。

{
   Webpage1(symbol:"AABC"){
       data_from_site,
       some_other_data
       Webpage2(symbol:"AABC"){ ##get rid of this Double attribute entry
          data_from_page2
       }  
   }
}

如何仅传递一个参数be并从两个站点获取数据? 因此它将在解析器的根上下文中使用。

我是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
                    };
                }
            }
        }
    })
})

如果我正确理解了您的问题,则可以保持架构不变,并在发送查询时仅使用变量:

query MyQuery($mySymbol: String){
  Webpage1(symbol:$mySymbol) {
    data_from_site
    some_other_data
  }
  Webpage2(symbol:$mySymbol) {
    data_from_page2  
  }
}

变量在文档顶部定义,作为操作定义的一部分。 一旦定义,它们就可以在文档中使用相同种类的文字值的任何位置使用任意次数。 您可以在此处查看有关变量的官方教程,并在此处查看规格。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM