第5章 プログラミング・モデル プログラミング・モデル
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
この章では、Quarkusのプログラミングモデルに関連するトピックについて学習する。 Quarkusは、そのプログラミングモデルに特徴がある。 他のフレームワークとは異なり、Quarkusでは、CDIを使用した命令型モデルと、SmallRye Mutinyを使用した反応型モデルの両方を組み合わせて使用することができる。第15章では、反応型アプローチの使用方法について説明する。 時には、両方のアプローチが必要になることがあるので、それぞれの活用方法を知っておくとよい。
この章では命令モデルに焦点を当てるので、以下のことを学ぶ:
-
JSONとXMLドキュメントのマーシャル/アンマーシャル方法
-
リクエストパラメータの検証方法
-
CDI仕様をコンテキストと依存性の注入ソリューションとして使用する方法
-
Quarkusサービスのテストの書き方
5.1 JSONのマーシャリング/アンマーシャリング
問題
Javaオブジェクトとの間でJSONドキュメントをマーシャル/アンマーシャルしたい。
解決策
Javaオブジェクトから/オブジェクトへのJSONドキュメントのマーシャル/アンマーシャルには、JSON-B 仕様またはJacksonプロジェクトを使用する。
REST APIを作成する場合、情報をやり取りするデータ形式としてJSONを使用するのが一般的だ。 これまでは、単純なプレーンテキストのレスポンスのみを返す例を見てきたが、このレシピでは、リクエスト本体とレスポンスのデータ形式としてJSONを使用する方法を学ぶ。
最初にすべきことは、JSON-Bエクステンションをpom.xmlに登録することである。ターミナルウィンドウを開き、プロジェクトのルートディレクトリから以下を実行する:
./mvnw quarkus:add-extension -Dextensions="quarkus-resteasy-jsonb"[INFO] --- quarkus-maven-plugin:1.4.1.Final:add-extension (default-cli)@ custom-config ---✅ Adding extension io.quarkus:quarkus-resteasy-jsonb
これは事実上、ビルドツールにio.quarkus:quarkus-resteasy-jsonb 。
注
Gradleでは、./gradlew addExtension--extensions="quarkus-resteasy-jsonb"を使って拡張機能を追加する。
次のステップは、エンドポイントでマーシャルとアンマーシャルを行うdeveloper クラスを作成することである。org.acme.quickstart.Developer.java という名前の新しいクラスを作成する:
packageorg.acme.quickstart;publicclassDeveloper{privateStringname;privateStringfavoriteLanguage;privateintage;publicStringgetName(){returnname;}publicvoidsetName(String ...