GraphQL中参数值能否用范围形式替代逐个枚举?
问题:GraphQL查询中能否用范围形式指定参数值?
我编写了如下GraphQL查询代码:
const queryGraphQL = { query: `query { products(searchInput: { parameters: [{ id: 915 values:[4095,4096,4170] } ] }, settingsInput: {limit:35 }) { products { producer{ link name id } awardedParameters { id name values { name link } } } } }`, }
我的问题是:是否可以将参数值以范围形式书写?还是必须逐个列出所有值?例如我想写成[1-15],而非[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]。我曾尝试直接在数组中写入范围但无效,望得到解答。
回答
这取决于你调用的GraphQL API的定义和实现:
- 标准GraphQL语法不支持直接写范围:数组类型的参数在标准语法里只接受明确的枚举值列表,
[1-15]这种写法不属于规范内容,直接使用必然会报错。 - 部分API会提供范围查询的专属结构:如果该API支持范围筛选,通常会为参数设计专门的输入字段,比如
min/max或者range对象。举个例子,针对你的场景可能会改成这样:
或者:parameters: [{ id: 915 minValue: 1 maxValue: 15 }]parameters: [{ id: 915 range: { start: 1, end: 15 } }] - 必须参考API的Schema文档:你需要查看该GraphQL API的官方Schema定义,确认
parameters输入类型是否提供了范围相关的字段。如果没有,就只能逐个列出所有值;如果有,按照文档要求的结构传递参数即可。
简言之:标准语法不支持直接写范围,但具体能不能用范围查询,完全看你调用的API有没有实现对应的功能。
内容的提问来源于stack exchange,提问作者Kuzuri9
相关产品推荐
相关产品推荐

