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

How to pass object type argument in query in GraphQL?

提问人:Bob Redity 提问时间:2/19/2022 更新时间:2/21/2022 访问量:6100

问:

我收到了这种类型的查询

query {
    searchRandom (param : MyObjectClass){
        city
    }
}

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

enter image description here

graphql express-graphql

评论


答:

4赞 Nuvindu Nirmana 2/20/2022 #1

使用以下查询。

query getData($param: MyObjectClass){
  searchRandom(param: $param)
      city
}

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

{
  "param": {"country": "England", "population": "High" }
}

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

---此外---

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

您需要在 GraphQL 架构中创建一个输入对象。

input MyObjectClass {
     country: String
     population: String
}

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

const resolvers = {
  Query: {
    searchRandom: (parent, { param }) => {
        var query_data = param
        ...//your code
        return city_name;
      },
    },

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