将自定义类型传递给阿波罗变异

时间:2017-03-31 23:25:40

标签: types middleware graphql typing apollo

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

e.g。 :如下所示,创建用户的Mutation(自定义用户类型已在GraphQL架构中定义):

createUser(user: User): String

我认为我们只允许传递主要类型,所以没有对象。 另一个选项(不干净)是将Object序列化为String并将其作为String参数传递,并在解析器中对其进行反序列化。

1 个答案:

答案 0 :(得分:1)

可以传递突变中的对象。例如,见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
  }
}

相关问题