2017-03-31 1 views
0

Gibt es eine Möglichkeit, einen benutzerdefinierten GraphQL-Typ mit Apollo zu übergeben?Übergeben von benutzerdefinierten Typen an eine Apollo-Mutation

z.B. : Wie die unten, um eine Mutation einen Benutzer (Custom User Type ist bereits im GraphQL Schema definiert) zu erstellen:

createUser(user: User): String 

Ich denke, dass wir so kein Objekt nur erlaubt sind, Grundtypen passieren. Eine andere Option (nicht sauber) wäre, ein Objekt als String zu serialisieren und als String-Parameter zu übergeben und im Resolver zu deserialisieren.

Antwort

1

Es ist möglich, ein Objekt in einer Mutation zu übergeben. Siehe zum Beispiel dieses cheat sheet. Sie müssen jedoch einen GraphQL-Typ für einen zusätzlichen Eingabebenutzer definieren und den Benutzertyp nicht verwenden.

In Ihrem Fall könnte es so aussehen:

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

 
input UserInput { 
 
    username: Strin! 
 
} 
 
`

Und die Mutation und die Resolver könnte wie folgt aussehen:

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

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

+0

Dank , t Hut war genau das, was ich vermisste. – awzx

Verwandte Themen