GraphQL调用Upwork API报错:仅允许一个'marketPlaceJobFilter'参数
解决GraphQL查询中重复参数名的错误
问题原因
你写的查询里,调用marketplaceJobPostings字段时重复使用了marketPlaceJobFilter这个参数名——GraphQL语法明确规定,每个字段的参数名必须唯一,不能重复传递同名参数。解析器遇到重复的参数名时,无法判断应该采用哪个对应的值,所以直接抛出了验证错误。
你定义了两个MarketplaceJobFilter类型的变量,但试图通过同一个参数名传递,这是不符合GraphQL规范的操作。
解决方案
Upwork的API中,marketPlaceJobFilter参数本身就是一个复合对象,支持在同一个对象里同时包含分页、搜索表达式等多种过滤条件。你需要把分页和搜索的规则合并到同一个MarketplaceJobFilter变量中,只传递一次该参数即可。
修改后的查询代码示例:
query marketplaceJobPostings( $jobFilter: MarketplaceJobFilter ) { marketplaceJobPostings( marketPlaceJobFilter: $jobFilter ) { totalCount edges { node { amount { rawValue } ciphertext skills { name } description title job { contractTerms { contractType } } } } } }
对应的变量结构示例(把分页和搜索条件合并):
{ "jobFilter": { // 填入分页相关配置,比如page、limit // 同时填入搜索相关配置,比如关键词、技能筛选等 } }
建议你查看Upwork文档中MarketplaceJobFilter的具体字段定义,确认所有需要的过滤条件都可以在同一个对象中配置,这样就能同时实现分页和搜索的需求了。
内容的提问来源于stack exchange,提问作者Dev Dev
相关产品推荐
相关产品推荐

