[micronaut] AWS LambdaでGORMを使う

micronaut(2.3.2) w/ groovy と GORM を使うアプリで、ローカル環境だと動作するけどLambda上だと以下のようなエラーになった。
Lambdaは、Serverless Function ではく、Applicationとして構築している。

以下のようなエラー

solution

Lambda 経由だと、通常のmainがエントリーポイントではなく、Application の場合は MicronautLambdaHandler がエントリーポイントとなる。
Server function だと、MicronautRequestHandler もしくは、MicronautRequestStreamHandler になる。

MicronautLambdaHandler を拡張したクラスを作成して、GORMのDomain郡があるパッケージを指定してあげる。

とうまくいった。




[micronaut] graphQL でunionを使う

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

schema

こんな感じのschema

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

Groovy側ソース

GraphQL インスタンスの作成

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

最後に、DataFetcher

実行

以下のクエリで、

結果こんな感じ