While by default MicroProfile GraphQL specification doesn't provide direct support for returning void
type from mutation operations, SmallRye GraphQL has implemented this feature based on user feedback.
To implement a mutation operation that returns void
or Void
type, you can use the following pattern in your annotated @GraphQLApi
class:
@Mutation
public void createHero(SuperHero hero) {
superHeroService.create(hero);
}
In this example, createHero()
receives a SuperHero object as input,
performs some operation with it (in this case, creating it using a
superHeroService
).
[NOTE] On the GraphQL level, this is achieved by returning a special scalar type named Void from the mutation. This scalar type will always have a value of null.