Golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《在子解析器中传递父解析器参数》带大家来了解一下##content_title##,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发!
我有一个具有以下结构的嵌套 graphql 查询
query{
parentmetrics(citynames: ["cali"], orderingdatefrom: "2021-01-01"){
sales
orders
childmetrics(citynames: ["cali"], orderingdatefrom: "2021-01-01"){
aov
}
}
}
正如你所看到的,我重复了这些参数,因为在后端我们运行不同的查询来获取parentmetrics和childmetrices,但它们需要相同的一组参数,这是多余的.
我可以做这样的事情吗?
query{
parentmetrics(citynames: ["cali"], orderingdatefrom: "2021-01-01"){
sales
orders
childmetrics{
aov
}
}
}
我正在使用github.com/graphql-go/graphql,目前这就是我的代码的样子
"parentMetrics": &graphql.Field{
Type: partnerGQL.ParentMetrics,
Args: graphql.FieldConfigArgument{
"cityNames": &graphql.ArgumentConfig{
Type:graphql.NewList(graphql.String),
}
"orderingDateFrom":&graphql.ArgumentConfig{
Type: graphql.String,
}
},
Resolve: partnerResolver.ResolveOrderItemMetrics,
}
parentmetric类型具有childmetrics的嵌套解析器
正确答案
当您返回父指标对象时,请在该对象中包含 parentmetrics
调用的参数。
childmetrics
的解析器将获取父对象,并能够从那里读取其参数。
javascript 的一个简单示例:
const resolvers = {
parentMetrics: (parent, args) => {
const metric = getParentMetric(args);
return {
...metric,
args: args,
};
},
childMetrics: (parent) => {
return getChildMetric(parent.args);
}
}
文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《在子解析器中传递父解析器参数》文章吧,也可关注编程网公众号了解相关技术文章。