如何在GraphQL上的自定义字段中使用查询?

时间:2019-01-18 04:29:04

标签: graphql

我的graphcool上有以下架构:

type User @model {
  id: ID! @isUnique
  name: String!
  email: String!
  password: String!
}

使用运动场,我可以正确执行此操作:

query {
  User(id: "1234") {
    id
    name
  }
}

但是这个查询:

query {
  User(name: "Thomas") {
    id
    name
  }
}

抛出错误:

  

“查询”类型的“用户”字段上的未知参数“名称”。 (第2行,   第8栏):
  用户(名称:“ Thomas”)。

为什么?以及如何解决这个问题?根据我的观点,可以立即查询模型中已经存在的任何内容,对吗?顺便说一句,我是graphQL的新手,而且几乎没有文章讨论此错误(每个教程都假设它会立即生效),因此,如有必要,请给出更详尽的答案。

1 个答案:

答案 0 :(得分:1)

GraphQL本质上不允许对对象进行任意查询。

模式中的某些地方会有一个附加声明,例如

[{'number': 1, 'favorite': False, 'color': {'green', 'red'}}, {'number': 1, 'favorite': True, 'color': {'red'}}, {'number': 2, 'favorite': False, 'color': {'red'}}]

type Query { User(id: ID!): User } 类型的名称是您可以运行的顶级查询,并且该查询中列出的参数是它们接受的 only 参数。 (对于顶级突变,有一种相应的Query类型,它可以更改基础状态,并在查询中使用Mutation关键字。)

如果您控制服务器的实现,则可以添加参数或其他顶级查询

mutation

但是您还必须提供此查询的实现或处理其他参数,这是代码更改。