如何向GraphQL发送正确的RQ查询?Sorare API查询报错求助
Sorare GraphQL API查询问题解决建议
问题说明
我正在Sorare的GraphQL Playground里尝试查询NBA排行榜数据,用了下面的查询语句:
query GetNbaLeaderboard($slug: String!) { nbaLeaderboard(slug: $slug) { slug } }
但一直收到错误:
ClientError: must be defined: {"response":{"errors":[{"message":"must be defined","path":["variable","slug"],"extensions":{"code":"GRAPHQL_VALIDATION_FAILED"}}],"data":null,"status":422,"headers":{}},"request":{"query":"\nquery GetNbaLeaderboard($slug: String!) {\n nbaLeaderboard(slug: $slug)\n {\n slug\n }\n}\n","variables":{"slugs":["nba-gameweek-27-common-champion"]}}}
错误原因&修复方案
从错误信息能直接定位问题:
- 你定义的查询变量是
$slug(非空单个字符串类型),但实际传入的变量名是slugs(复数),且值是数组格式,和变量定义的类型完全不匹配。
修复后的变量格式应该改成这样:
{ "slug": "nba-gameweek-27-common-champion" }
把变量名从slugs改为slug,同时去掉数组包裹,直接传入单个字符串值即可。
关于API文档阅读
在Sorare的GraphQL Playground界面中,顶部或侧边栏有Schema选项,点击后可以查看所有可用查询、字段、参数的类型定义。比如搜索nbaLeaderboard,就能看到它要求的slug参数类型,以及返回数据的结构,这样就能提前避免参数类型不匹配的问题。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

