【问题标题】:Graphql multiple arguments in fieldGraphql字段中的多个参数
【发布时间】:2019-03-08 15:25:37
【问题描述】:

我正在使用 GraphQL。 我可以在一个字段中传递一个参数。但我想知道如何将多个参数传递给一个字段。

这是我的代码: GraphlQL 对象类型:价格可用性

const priceAvailability = new GraphQLObjectType({
  name: "priceAvailability",
  description: "Check price and availability of article",
  fields: () => ({
    articleID: {
      type: GraphQLString
    },
    priceType:{
      type:GraphQLString
    },
    stockAvailability: {
      type: StockAvailabilityType,
      resolve(parentValue, args) {

        // stuff to get the price and availability
        return (data = getStockAvailability.getStockAvailability(
          parentValue.isbn, parentValue.omgeving
        ));
      }
    }
  })
});

根查询

const RootQuery = new GraphQLObjectType({
  name: "RootQuery",
  fields: () => ({
    price: {
      type: new GraphQLList(priceAvailability),
      args: [{
      articleID: {
          type: new GraphQLList(GraphQLString),
          description:
            'List with articles. Example: ["artid1","artid2"]'
        },
        priceType: {
          type: new GraphQLList(GraphQLString) ,
          description:
            'PriceType. Example: "SalePrice","CurrentPrice"'
        }]
      },
      resolve: function(_, { articleID , priceType}) {
        var data = [];
        // code to return data here
        return data;
      }
    }
  })
});

架构

module.exports = new GraphQLSchema({
  query: RootQuery
});

这是我在 GraphiQL 中用来测试的查询:

{
  query: price(articleID:"ART03903", priceType:"SalePrice" ){
        stockAvailability {
          QuantityAvailable24hrs
          QuantityAvailable48hrs
        }
    }
}

我可以通过 parentValue.articleID 获取 articleID,但在获取 parentValue.priceType 时遇到问题。

另外 GraphiQL 告诉我 priceType 不存在:

未知参数“priceType”。在“RootQuery”类型的“价格”字段上

【问题讨论】:

    标签: arguments graphql graphiql


    【解决方案1】:

    args 字段采用对象而不是数组。试试:

    args: {
      articleID: {
        type: new GraphQLList(GraphQLString),
        description: 'List with articles. Example: ["artid1","artid2"]'
      },
      priceType: {
        type: new GraphQLList(GraphQLString) ,
        description: 'PriceType. Example: "SalePrice","CurrentPrice"'
      },
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-03
      • 1970-01-01
      • 2019-10-09
      • 2017-06-09
      • 2017-03-04
      • 2020-08-02
      • 2021-03-06
      • 1970-01-01
      相关资源
      最近更新 更多