2016-12-28 66 views
4

此模式看起來是否正確?如何在GraphQL中設計考慮突變的輸入類型的模式?

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將在用戶創建分配,是否應該有獨立的type並在此架構input用戶可以作出input?因此,該架構看起來像這樣

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

mutation createNewUser($usr: User!) { 
    createUser(user: $usr) : User 
} 
+1

我相信您最初的做法是正確的基礎上,文檔:http://graphql.org/graphql-js/mutations-and-input-types/ – MattDionis

回答

0

你在第一種方法中的錢是正確的。 id字段不能爲空(id: ID!),並且在您需要創建用戶時它不能有值,因此您需要爲其創建另一個輸入類型。

由於mattdionis也指出,docs中有一個非常相似的樣本。

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];