GraphQL:变量被匿名查询使用但未声明

kev*_*vin 6 graphql

我是 GraphQL 新手。我有一个查询,但它显示错误消息“变量被匿名查询使用但未声明”。

{
   "query":"{customers(first: 1, query: $input) {edges{node {addresses{ id }}}}}",
   "variables":{
      "input":{
         "id":"gid://shopify/Customer/5044061470926"
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

我可以得到一些帮助吗?我做错了什么?

谢谢!

log*_*yth 12

错误是正确的。您的查询是

{
  customers(first: 1, query: $input) {
    edges{
      node {
        addresses{ 
          id 
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

并且$input确实没有声明,所以 GraphQL 不知道它应该是什么,也不知道如何将它与你的variables值联系起来。

你需要做

query ($input: <THE_TYPE>!) {
  customers(first: 1, query: $input) {
    edges{
      node {
        addresses{ 
          id 
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我不知道您的 API 架构,因此您必须替换<THE_TYPE>为 API 架构中定义的任何类型。