2017-03-31 60 views
0

有没有办法将自定义GraphQL类型传递给Apollo?将自定义类型传递给Apollo突变

例如:像下面,突变创建一个用户(用户自定义类型已经在GraphQL架构中定义):

createUser(user: User): String 

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

回答

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 
 
    } 
 
}

+0

谢谢,t帽子正是我所错过的。 – awzx

相关问题