如何在GraphQL中设计模式,考虑变异的输入类型?

时间:2016-12-28 02:56:07

标签: graphql graphql-js

此架构看起来是否正确?

type User {
    id : ID!
    username : String!
    email : String!
    name : String!
}

input UserInput {
    username : String!
    email : String!
    name : String!
}

mutation createNewUser($usr: UserInput!) {
  createUser(user: $usr)
}

由于用户的内部ID将在用户创建时分配,因此此架构中是否应单独typeinput,或者用户可以{{1} }?因此架构看起来像这样

input

2 个答案:

答案 0 :(得分:0)

在第一种方法中,你是对的。 id字段不能为空(id: ID!),并且在您需要创建用户时它不能有值,因此您需要为其创建另一种输入类型。

正如mattdionis所指出的那样,docs中有一个非常类似的样本。

答案 1 :(得分:0)

您的架构应该是

const typeDefinitions = `
type User {
    id : ID!
    username : String!
    email : String!
    name : String!
}

input UserInput {
    username : String!
    email : String!
    name : String!
}

type Mutation {
  createUser(user: UserInput) User
}

schema {
  mutation:Mutation
}
`;

export default [typeDefinitions];