我可以让我的graphql查询多用途吗?

我可以让我的graphql查询多用途吗?,graphql,Graphql,我想通过不同的过滤器和条件查询产品,因此我为每个案例的前端编写了多个查询(如下所示)。是否有一种方法可以编写和使用一个“多用途”查询而不是这些查询 const GET_PRODUCTS=gql` 质疑{ 产品{ …产品片段 } } ${PRODUCT_FRAGMENT} ` 通过价格=gql获取产品` 查询($sortFilter:String){ 产品(分类:$sortFilter){ #(排序:“价格:asc”)或(排序:“价格:desc”) …产品片段 } } ${PRODUCT_FRAG

我想通过不同的过滤器和条件查询产品,因此我为每个案例的前端编写了多个查询(如下所示)。是否有一种方法可以编写和使用一个“多用途”查询而不是这些查询

const GET_PRODUCTS=gql`
质疑{
产品{
…产品片段
}
}
${PRODUCT_FRAGMENT}
`
通过价格=gql获取产品`
查询($sortFilter:String){
产品(分类:$sortFilter){
#(排序:“价格:asc”)或(排序:“价格:desc”)
…产品片段
}
}
${PRODUCT_FRAGMENT}
`
const GET_PRODUCTS_BY_CATEGORY=gql`
查询($categoryId:String){
产品(其中:{categories:{id:$categoryId}}){
…产品片段
}
}
${PRODUCT_FRAGMENT}
`
按类别和价格获取产品`
查询($sortFilter:String,$categoryId:String){
产品(排序:$sortFilter,其中:{categories:{id:$categoryId}){
…产品片段
}
}
${PRODUCT_FRAGMENT}
`
看起来我可以这样写一个助手fn:

函数getRequiredProductsQuery({sortFilter,categoryId}){
if(sortFilter&&categoryId){
返回{key:'PRODUCTS_BY_CATEGORY_和_PRICE',查询:GET_PRODUCTS_BY_CATEGORY_和_PRICE}
}
if(sortFilter){
返回{key:'PRODUCTS_BY_PRICE',query:GET_PRODUCTS_BY_PRICE}
}
if(类别ID){
返回{key:'PRODUCTS_BY_CATEGORY',query:GET_PRODUCTS_BY_CATEGORY}
}
返回{key:'PRODUCTS',query:GET_PRODUCTS}
}

真的有必要吗?

好的,我想我可以提供默认参数,比如$categoryId:String=“id:asc”

只是
sortFilter
where
参数?