GraphQL.js,关于子字段的参数
GraphQL.js, Arguments on Subfield
我已经使用 GraphQL.js 和 Express 设置了一个 GraphQL 数据库,它从硬编码的 JSON-Object 中获取数据。我的 JSON-对象如下所示:
exports.store = {
"categories":
{ ... },
"customers":
{ ... },
"vendors":
{ ... },
"items":
{ ... },
"products":
{ ... },
}
每个类别都有多个条目,每个条目都有子字段,具体取决于类别。我已经为所有类别编写了解析器,例如可以通过 ID 获取特定客户的数据。
我现在要做的是类似于 SQL 中的 WHERE 子句。产品条目如下所示:
"1": {
"id":1,
"name":"Coconut",
"category":{
"id":1,
"name":"Fruits"
},
"vendor":{
"id":32,
"name":"Exotic Fruits Company"
}
},
所以现在我希望能够进行查询,它会为我提供所有具有由其 ID 指定的特定供应商的产品。我能以某种方式重用我已经为此编写的解析器吗?甚至可以在子字段上有一个参数来指定要返回哪个父字段吗?
我不明白 to have an argument on a subfield that specified which of it's parents are to be returned
是什么意思。
我了解到您想要一个 returns 仅具有特定 vendorId
产品的解析器,这应该可行:
type Query {
products($vendorId: Int): [Product]
}
const resolvers = {
...
products: ({ vendorId }) => {
return store.products.values().filter(product => product.vendor.id === vendorId);
},
...
};
如果不是这样,请详细说明 ;)
我已经使用 GraphQL.js 和 Express 设置了一个 GraphQL 数据库,它从硬编码的 JSON-Object 中获取数据。我的 JSON-对象如下所示:
exports.store = {
"categories":
{ ... },
"customers":
{ ... },
"vendors":
{ ... },
"items":
{ ... },
"products":
{ ... },
}
每个类别都有多个条目,每个条目都有子字段,具体取决于类别。我已经为所有类别编写了解析器,例如可以通过 ID 获取特定客户的数据。
我现在要做的是类似于 SQL 中的 WHERE 子句。产品条目如下所示:
"1": {
"id":1,
"name":"Coconut",
"category":{
"id":1,
"name":"Fruits"
},
"vendor":{
"id":32,
"name":"Exotic Fruits Company"
}
},
所以现在我希望能够进行查询,它会为我提供所有具有由其 ID 指定的特定供应商的产品。我能以某种方式重用我已经为此编写的解析器吗?甚至可以在子字段上有一个参数来指定要返回哪个父字段吗?
我不明白 to have an argument on a subfield that specified which of it's parents are to be returned
是什么意思。
我了解到您想要一个 returns 仅具有特定 vendorId
产品的解析器,这应该可行:
type Query {
products($vendorId: Int): [Product]
}
const resolvers = {
...
products: ({ vendorId }) => {
return store.products.values().filter(product => product.vendor.id === vendorId);
},
...
};
如果不是这样,请详细说明 ;)