GraphQL 使用简单对象而不是在模式上创建特定类型

GraphQL use simple object instead create specific type on schema

我是 graphql 的新手,我想要实现的是简化这个模式:

input UserQueryFilter {
   email: String
}
input UserQueryInput {
    filter: UserQueryFilter
    anotherArgs: String
}

type User {
   email: String!
}

Query { 
    User (input: UserQueryInput) : [User]
}

进入这个:


input UserQueryFilter {
   email: String
}

type User {
   email: String!
}

Query { 
    User (input: { filter: UserQueryFilter }, anotherArgs: String ) : [User]
}

但我得到了:

Syntax Error: Expected Name, found "{".","locations":[{"line":183,"column":20}] ...

当涉及到更复杂的应用程序时,在第二个应用程序上编写代码会变得更容易。 有什么办法可以解决吗?

感谢您的帮助!

第二个模式在语法上是错误的。在分号之后,总是需要一个类型。这种类型可以是默认类型,如 String、ID、Int 等,也可以是自定义类型。特别是对于查询参数,它应该是默认类型或输入类型。否则,正如您提到的,buildSchema 方法将在解析整个模式时抛出错误。