[micronaut] graphQL でunionを使う

micronaut に限らず、GraphQL Java を利用していればSpring boot や他のフレームワークでも同じことができます。
また、groovy で書いてますが、Java / kotlin でも同様のことは実装できます。

schema

こんな感じのschema

ReturnType が、ReturnTypeA と、ReturnTypeB の二つのどちらかとなる場合。

Groovy側ソース

GraphQL インスタンスの作成

それぞれ、schema に合わせた、クラスを作成

最後に、DataFetcher

実行

以下のクエリで、

結果こんな感じ