Mutation
In this section we will add an example for Mutation
.
Scheme
Update the schema to include a mutation, and a method which will be used to verify the mutation:
type Query {
greeting: Greeting
getMessage: String
}
type Subscription {
greetings: Greeting
}
type Greeting {
message: String
}
type Mutation {
setMessage(message: String): Greeting
}
Server
First we will add the python functionality:
stored_message = ""
async def get_message(*args):
global stored_message
return stored_message
async def set_message(root, _info, message):
global stored_message
stored_message = message
return {
"message": message
}
And connect it to the schema:
schema.query_type.fields['getMessage'].resolve = get_message
schema.mutation_type.fields['setMessage'].resolve = set_message
This is all that is required on the server side
Client
Here is an example of using the mutation from the client:
async def verify_message(graphql: Client, expected_message: str):
response = await graphql.execute_async(
gql("""query { getMessage }""")
)
assert response['getMessage'] == expected_message
print(response)
async def set_message(graphql: Client, message: str):
response = await graphql.execute_async(
gql("""mutation SetMessage($message:String) { setMessage (message: $message ) {message}}"""),
variable_values={"message": message}
)
print(response)