将自定义类型传递给 Apollo Mutation

Passing Custom Types to an Apollo Mutation

有没有办法通过 Apollo 传递自定义 GraphQL 类型?

例如:如下所示,创建用户的突变(自定义用户类型已在 GraphQL 模式中定义):

createUser(user: User): String

我认为我们只允许传递主要类型,所以不允许传递对象。 另一种选择(不干净)是将对象序列化为字符串并将其作为字符串参数传递,然后在解析器中反序列化它。

可以在变更中传递对象。例如,参见 cheat sheet。但是你必须定义一个额外的输入用户GraphQL类型并且不能使用用户类型。

在你的情况下它可能是这样的:

`
type User {
  id: ID!
  username: String!
  // other query properties
}

input UserInput {
  username: Strin!
}
`

突变和解析器可能如下所示:

`
mutation createUser(user: UserInput!): String
`

Mutation: {
  createUser(_, { user }) {
    // create in database
  }
}