I have a problem with GraphQL. I want to send axios.post request to my server. I can do it in postman:
{
"query":"mutation{updateUserCity(userID: 2, city:\"test\"){id name age city knowledge{language frameworks}}} "
}
and in graphiql:
mutation {
updateUserCity(userID: 2, city: "test") {
id
name
age
city
knowledge {
language
frameworks
}
}
}
but can't do it in my code:(( here is my code snippet:
const data = await axios.post(API_URL, {
query: mutation updateUserCity(${ id }: Int!, ${ city }: String!) {
updateUserCity(userID: ${ id }, city: ${ city }){
id
name
age
city
knowledge{
language
frameworks
}
}
}
}, {
headers: {
'Content-Type': 'application/json'
}
})
what's wrong in my code?
Value of
query
parameter to be passed in request has to be string and names of variables passed to GraphQL queries should be prefixed by$
. You have used string literals for variables in request instead. Also, variables can be passed in post request usingvariables
key.Changing your code to something like below should get it to working:
It seems you're trying to pass variables into the query. Unless I'm wrong, what you have in the axios call and the others are different.
I believe this should work, assuming you have the variables
id
andcity
defined before this call.i would like to share you my simple working example