根据 javascript 中的条件动态创建 graphql 查询
Dynamically create graphql query based on criterias from javascript
我正在使用 GraphQl 和 bigcommerce 来抓取产品,我需要找到一个解决方案来使我的查询动态化——它基于 SKU 数组的长度。让它与一个产品一起工作是没有问题的。
let query = `
query getProductBySku($sku: String) {
site {
product(sku: $sku) {
id
entityId
name
sku
}
}
}
`
到目前为止我发现我需要在 graphql 中使用别名之类的东西才能在这样的多个响应中获得多个产品
query productById {
site {
o1: product(entityId: 167) {
id
entityId
sku
name
}
o2: product(entityId: 168 ) {
id
entityId
sku
name
}
}
}
但我需要能够根据数组的长度使此别名查询动态化。您将如何解决这个问题?是否有可能创建一个循环,在我 运行 之前写出查询。任何帮助我在正确的方向上的帮助将不胜感激!谢谢!
ps。我正在使用 javascript.
对于任何好奇的人,我最终能够使用 .map 动态循环查询和 运行 它 :)
let query = `
query productBySku {
site {
${sku
.map(
(product: any, idx: number) =>
`pro${idx}: product(sku: "${product}") {
id
entityId
sku
name
}
`
)
.join('')}
}
}
`
我正在使用 GraphQl 和 bigcommerce 来抓取产品,我需要找到一个解决方案来使我的查询动态化——它基于 SKU 数组的长度。让它与一个产品一起工作是没有问题的。
let query = `
query getProductBySku($sku: String) {
site {
product(sku: $sku) {
id
entityId
name
sku
}
}
}
`
到目前为止我发现我需要在 graphql 中使用别名之类的东西才能在这样的多个响应中获得多个产品
query productById {
site {
o1: product(entityId: 167) {
id
entityId
sku
name
}
o2: product(entityId: 168 ) {
id
entityId
sku
name
}
}
}
但我需要能够根据数组的长度使此别名查询动态化。您将如何解决这个问题?是否有可能创建一个循环,在我 运行 之前写出查询。任何帮助我在正确的方向上的帮助将不胜感激!谢谢!
ps。我正在使用 javascript.
对于任何好奇的人,我最终能够使用 .map 动态循环查询和 运行 它 :)
let query = `
query productBySku {
site {
${sku
.map(
(product: any, idx: number) =>
`pro${idx}: product(sku: "${product}") {
id
entityId
sku
name
}
`
)
.join('')}
}
}
`