Monday, 24 April 2017

Passing complex arguments to GraphQL mutations

I've been using GraphQL in a Node server using graphql-js, and GraphQL has shown to be an extremely valuable abstraction, but I'm running into an issue.

I often find myself needing to pass large structured objects as arguments to GraphQL mutations, using GraphQLInputObjectType. This would be fine, but GraphQL doesn't support the use of JSON notation :(. So I end up just sending a string containing the JSON, for the server to deal with.

const objectStr = JSON.stringify(object).replace(new RegExp("\"", "g"), "'")

graphQLClient(`{
    user: updateUser(someDataObject: "${objectStr}") {...}
}`)

But now I'm not benefiting at all from GraphQL!

I have a feeling I'm doing something wrong here. What is the GraphQL way of sending, say, signup form data, to a mutation?



via functorial

No comments:

Post a Comment