第8章 利用可能なサンプル Spring Boot
Spring Boot ランタイムは、サンプルアプリケーションを提供します。OpenShift でアプリケーションの開発を開始すると、サンプルアプリケーションをテンプレートとして使用できます。
これらのサンプルアプリケーションは Developer Launcher でアクセスできます。
8.1. Spring Boot の REST API Level 0 サンプル
以下の例は、実稼働環境での実行を目的としていません。
上達度レベルの例: Foundational
REST API Level 0 サンプルでできること
REST API Level 0 サンプルでは、REST フレームワークを使用して、HTTP 経由でビジネスオペレーションをリモートプロシージャコールエンドポイントにマッピングする方法が示されています。これは、Richardson Maturity Model の Level 0 に対応します。REST およびその基本的な原則を使用して HTTP エンドポイントを作成すると、API を柔軟にプロトタイプおよび設計することができます。
この例では、HTTP プロトコルを使用してリモートサービスと対話するためのメカニズムが導入されました。これにより、以下が可能になります。
-
api/greeting
エンドポイントで HTTPGET
要求を実行します。 -
Hello, World!
で設定されるペイロードを使用して JSON 形式でレスポンスを受け取ります。文字列。 -
String 引数を渡し、
api/greeting
エンドポイントで HTTPGET
要求を実行します。これにより、クエリー文字列にname
要求パラメーターが使用されます。 -
Hello, $name!
のペイロードを含む JSON 形式の応答を受信します。$name
は、要求に渡されたname
パラメーターの値に置き換えられます。
8.1.1. REST API Level 0 設計トレードオフ
表8.1 設計トレードオフ
利点 | 悪い点 |
---|---|
|
|
8.1.2. REST API Level 0 サンプルアプリケーションの OpenShift Online へのデプロイメント
以下のオプションのいずれかを使用して、OpenShift Online で REST API Level 0 サンプルアプリケーションを実行します。
各メソッドは、同じ oc
コマンドを使用してアプリケーションをデプロイしますが、developers.redhat.com/launch を使用すると、oc
コマンドを実行する自動デプロイメントワークフローが提供されます。
8.1.2.1. developers.redhat.com/launch を使用したサンプルアプリケーションのデプロイメント
前提条件
- OpenShift Online のアカウント。
手順
- ブラウザーで developers.redhat.com/launch URL に移動します。
- 画面の指示に従って、Spring Boot でサンプルアプリケーションを作成して起動します。
8.1.2.2. CLI クライアント oc
の認証
oc
コマンドラインクライアントを使用して OpenShift Online でアプリケーションのサンプルを使用するには、OpenShift Online の Web インターフェイスによって提供されるトークンを使用してクライアントを認証する必要があります。
前提条件
- OpenShift Online のアカウント。
手順
- ブラウザーで OpenShift Online URL に移動します。
- ユーザー名の横にある Web コンソールの右上にあるクエスチョンマークアイコンをクリックします。
- ドロップダウンメニューで Command Line Tools を選択します。
-
oc login
コマンドをコピーします。 端末にコマンドを貼り付けます。このコマンドは、認証トークンを使用して CLI クライアント
oc
を OpenShift Online アカウントで認証します。$ oc login OPENSHIFT_URL --token=MYTOKEN
8.1.2.3. CLI クライアント oc
を使用した REST API Level 0 サンプルアプリケーションのデプロイメント
前提条件
- developers.redhat.com/launch を使用して作成されたサンプルアプリケーション。詳細は「developers.redhat.com/launch を使用したサンプルアプリケーションのデプロイメント」を参照してください。
-
認証された
oc
クライアント。詳細は「CLI クライアントoc
の認証」を参照してください。
手順
GitHub からプロジェクトのクローンを作成します。
$ git clone git@github.com:USERNAME/MY_PROJECT_NAME.git
または、プロジェクトの ZIP ファイルをダウンロードして、展開します。
$ unzip MY_PROJECT_NAME.zip
OpenShift で新規プロジェクトを作成します。
$ oc new-project MY_PROJECT_NAME
- アプリケーションの root ディレクトリーに移動します。
Maven を使用して OpenShift へのデプロイメントを開始します。
$ mvn clean fabric8:deploy -Popenshift
このコマンドは、Fabric8 Maven プラグインを使用して OpenShift で S2I プロセス を起動し、Pod を起動します。
アプリケーションのステータスを確認し、Pod が実行していることを確認します。
$ oc get pods -w NAME READY STATUS RESTARTS AGE MY_APP_NAME-1-aaaaa 1/1 Running 0 58s MY_APP_NAME-s2i-1-build 0/1 Completed 0 2m
MY_APP_NAME-1-aaaaa
Pod は、完全にデプロイされて起動すると、ステータスがRunning
になるはずです。特定の Pod 名が異なります。中間の数字は新規ビルドごとに増えます。末尾の文字は、Pod の作成時に生成されます。アプリケーションのサンプルをデプロイして起動すると、そのルートを決定します。
ルート情報の例
$ oc get routes NAME HOST/PORT PATH SERVICES PORT TERMINATION MY_APP_NAME MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME MY_APP_NAME 8080
Pod のルート情報には、アクセスに使用するベース URL が提供されます。上記の例では、
http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME
をベース URL として使用し、アプリケーションにアクセスします。
8.1.3. REST API Level 0 サンプルアプリケーションの Minishift または CDK へのデプロイメント
以下のオプションのいずれかを使用して、REST API Level 0 サンプルアプリケーションを Minishift または CDK でローカルに実行します。
各メソッドは、同じ oc
コマンドを使用してアプリケーションをデプロイしますが、Fabric8 Launcher を使用すると、oc
コマンドを実行する自動デプロイメントワークフローが提供されます。
8.1.3.1. Fabric8 Launcher ツールの URL および認証情報の取得
Minishift または CDK にサンプルアプリケーションを作成してデプロイするには、Fabric8 Launcher ツール URL とユーザー認証情報が必要です。この情報は、Minishift または CDK の起動時に提供されます。
前提条件
- Fabric8 Launcher ツールがインストールされ、設定され、実行している。
手順
- Minishift または CDK を起動したコンソールに移動します。
実行中の Fabric8 Launcher にアクセスするのに使用できる URL およびユーザー認証情報のコンソール出力を確認します。
Minishift または CDK 起動時のコンソール出力の例
... -- Removing temporary directory ... OK -- Server Information ... OpenShift server started. The server is accessible via web console at: https://192.168.42.152:8443 You are logged in as: User: developer Password: developer To login as administrator: oc login -u system:admin
8.1.3.2. Fabric8 Launcher ツールを使用したサンプルアプリケーションのデプロイメント
前提条件
- 実行中の Fabric8 Launcher インスタンスの URL と、Minishift または CDK のユーザー認証情報。詳細は「Fabric8 Launcher ツールの URL および認証情報の取得」を参照してください。
手順
- ブラウザーで Fabric8 Launcher URL に移動します。
- 画面の指示に従って、Spring Boot でサンプルアプリケーションを作成して起動します。
8.1.3.3. CLI クライアント oc
の認証
oc
コマンドラインクライアントを使用して Minishift または CDK でサンプルアプリケーションを使用するには、Minishift または CDK Web インターフェイスが提供するトークンを使用してクライアントを認証する必要があります。
前提条件
- 実行中の Fabric8 Launcher インスタンスの URL と、Minishift または CDK のユーザー認証情報。詳細は「Fabric8 Launcher ツールの URL および認証情報の取得」を参照してください。
手順
- ブラウザーで Minishift または CDK URL に移動します。
- ユーザー名の横にある Web コンソールの右上にあるクエスチョンマークアイコンをクリックします。
- ドロップダウンメニューで Command Line Tools を選択します。
-
oc login
コマンドをコピーします。 端末にコマンドを貼り付けます。このコマンドは、認証トークンを使用して、Minishift または CDK アカウントで CLI クライアント
oc
を認証します。$ oc login OPENSHIFT_URL --token=MYTOKEN
8.1.3.4. CLI クライアント oc
を使用した REST API Level 0 サンプルアプリケーションのデプロイメント
前提条件
- Minishift または CDK の Fabric8 Launcher ツールを使用して作成されたサンプルアプリケーション。詳細は「Fabric8 Launcher ツールを使用したサンプルアプリケーションのデプロイメント」を参照してください。
- Fabric8 Launcher ツールの URL。
-
認証された
oc
クライアント。詳細は「CLI クライアントoc
の認証」を参照してください。
手順
GitHub からプロジェクトのクローンを作成します。
$ git clone git@github.com:USERNAME/MY_PROJECT_NAME.git
または、プロジェクトの ZIP ファイルをダウンロードして、展開します。
$ unzip MY_PROJECT_NAME.zip
OpenShift で新規プロジェクトを作成します。
$ oc new-project MY_PROJECT_NAME
- アプリケーションの root ディレクトリーに移動します。
Maven を使用して OpenShift へのデプロイメントを開始します。
$ mvn clean fabric8:deploy -Popenshift
このコマンドは、Fabric8 Maven プラグインを使用して OpenShift で S2I プロセス を起動し、Pod を起動します。
アプリケーションのステータスを確認し、Pod が実行していることを確認します。
$ oc get pods -w NAME READY STATUS RESTARTS AGE MY_APP_NAME-1-aaaaa 1/1 Running 0 58s MY_APP_NAME-s2i-1-build 0/1 Completed 0 2m
MY_APP_NAME-1-aaaaa
Pod は、完全にデプロイされて起動すると、ステータスがRunning
になるはずです。特定の Pod 名が異なります。中間の数字は新規ビルドごとに増えます。末尾の文字は、Pod の作成時に生成されます。アプリケーションのサンプルをデプロイして起動すると、そのルートを決定します。
ルート情報の例
$ oc get routes NAME HOST/PORT PATH SERVICES PORT TERMINATION MY_APP_NAME MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME MY_APP_NAME 8080
Pod のルート情報には、アクセスに使用するベース URL が提供されます。上記の例では、
http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME
をベース URL として使用し、アプリケーションにアクセスします。
8.1.4. REST API Level 0 サンプルアプリケーションの OpenShift Container Platform へのデプロイメント
サンプルアプリケーションを OpenShift Container Platform に作成し、デプロイするプロセスは OpenShift Online に似ています。
前提条件
- developers.redhat.com/launch を使用して作成されたサンプルアプリケーション。
手順
- 「REST API Level 0 サンプルアプリケーションの OpenShift Online へのデプロイメント」 の説明に従い、OpenShift Container Platform Web コンソールの URL およびユーザー認証情報のみを使用します。
8.1.5. Spring Boot の未変更の REST API Level 0 サンプルアプリケーションとの対話
この例では、GET 要求を受け入れるデフォルトの HTTP エンドポイントを提供します。
前提条件
- アプリケーションの実行
-
curl
バイナリーまたは Web ブラウザー
手順
curl
を使用して、サンプルにGET
要求を実行します。これを行うには、ブラウザーを使用することもできます。$ curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/greeting {"content":"Hello, World!"}
curl
を使用して、例に対して URL パラメーターname
を付けてGET
要求を実行します。これを行うには、ブラウザーを使用することもできます。$ curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/greeting?name=Sarah {"content":"Hello, Sarah!"}
ブラウザーから、例で提供されているフォームを使用して、これらの同じ対話を実行することもできます。フォームは、プロジェクト http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME
の root にあります。
8.1.6. REST API Level 0 のサンプルアプリケーション統合テストの実行
このサンプルアプリケーションには、自己完結型の統合テストセットが含まれます。OpenShift プロジェクト内で実行する場合、テストは以下を行います。
- アプリケーションのテストインスタンスをプロジェクトにデプロイします。
- そのインスタンスで個別のテストを実行します。
- テストが完了したら、プロジェクトからアプリケーションのすべてのインスタンスを削除します。
統合テストを実行すると、サンプルアプリケーションの既存インスタンスがすべて、ターゲット OpenShift プロジェクトから削除されます。サンプルアプリケーションが正しく削除されないようにするには、テストを実行するために別の OpenShift プロジェクトを作成して選択してください。
前提条件
-
認証された
oc
クライアント。 - 空の OpenShift プロジェクト。
手順
次のコマンドを実行して統合テストを実行します。
$ mvn clean verify -Popenshift,openshift-it
8.1.7. REST リソース
REST の背景および関連情報は、以下を参照してください。
- Architectural Styles and the Design of Network-based Software Architectures - Representational State Transfer (REST)
- Richardson Maturity Model
- JSR 311: JAX-RS: The JavaTM API for RESTful Web Services
- Spring での RESTful サービスの構築
- Eclipse Vert.x の REST API Level 0
- Thorntail の REST API Level 0
- Node.js の REST API Level 0