如何在 GraphQL 查询中传递对象类型参数?

Bob*_*ity 3 graphql graphql-js graphql-java express-graphql

我收到了这种类型的查询

query {
    searchRandom (param : MyObjectClass){
        city
    }
}
Run Code Online (Sandbox Code Playgroud)

如何设置 param 的类型MyObjectClass并将其传递到查询中?能在这里测试吗?

在此输入图像描述

Nuv*_*ana 5

使用以下查询。

query getData($param: MyObjectClass){
  searchRandom(param: $param)
      city
}
Run Code Online (Sandbox Code Playgroud)

然后转到 Graphiql 中的查询变量选项卡并像这样传递变量数据。您还没有提到 MyObjectClass 中包含的数据类型。因此以此为例:

{
  "param": {"country": "England", "population": "High" }
}
Run Code Online (Sandbox Code Playgroud)

然后数据应该按预期返回。

- - 此外 - -

如果您正在运行服务器,请确保已设置以下内容。

您需要在 GraphQL 模式中创建一个输入对象。

input MyObjectClass {
     country: String
     population: String
}
Run Code Online (Sandbox Code Playgroud)

然后在解析器中,您必须将对象作为参数传递。(假设您正在使用 JavaScript)

query getData($param: MyObjectClass){
  searchRandom(param: $param)
      city
}
Run Code Online (Sandbox Code Playgroud)

我不确定这是否解决了您的问题。我希望这个答案有帮助。