Graphql字段中的多个参数
Posted
技术标签:
【中文标题】Graphql字段中的多个参数【英文标题】:Graphql multiple arguments in field 【发布时间】: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”类型的“价格”字段上
【问题讨论】:
【参考方案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"'
,
【讨论】:
以上是关于Graphql字段中的多个参数的主要内容,如果未能解决你的问题,请参考以下文章
在graphql中,组合多个源中的字段共享一个共同值的多个源的最佳方法是啥?