はじめに
本稿では、Couchbase Labsにより公開されているサンプルアプリケーションを紹介します。
サンプルアプリケーションの構成を下に図示します。アプリケーションを動かしてみるためには、Dockerが利用できることが必要になります。
クイックスタート
githubからリポジトリを取得します。ディレクトリを移動します。
git clone https://github.com/couchbaselabs/try-cb-java.git
cd try-cb-java
移動先のディレクトリで、docker-compose
を以下のように実行します。
docker-compose up
Couchbase Server
http://localhost:8091/にアクセスすると、以下のようなログイン画面が表示されます。以下の認証情報を使ってログインすることができます。
- アカウント名:Administrator
- パスワード:password
アプリケーションフロントエンド
http://localhost:8081にアクセスします。下の画面が表示されます。
二つのリンクが存在しますが、それぞれへ以下のような画面へ進みます。
URLを見るとわかりますが、tenant_agent_00
とtenant_agent_01
という二つのテナントを模したものになっています。
ここでは、 CB Travelを選択して進みます。
初回利用時には、ユーザーが存在していないので、ユーザー名とパスワードを入力して、[Register]をクリックします。
以下のような画面が表示されます。
REST APIサービス
http://localhost:8080にアクセスします。下の画面が表示されます。
「Learn the API with Swagger, interactively」リンクを押下します(または、 http://localhost:8080/apidocsにアクセスします)。下の画面が表示されます。
アプリケーション概要
このアプリケーションは、ユーザーが空港と日付に基づいて飛行ルートを検索して選択できるフライトプランナーです。
また、ユーザーはキーワードを使用してホテルを検索できます。
データ・モデル
サンプルデータセットの詳細については、Travel App DataModelを参照してください。
アプリケーション終了
アプリケーションを終了するには、ターミナルでControl+Cを押し、docker-composeがコンテナーを正常に停止するのを待ちます。
Dockerからマニュアル実行への切り替え
上では、すべてをDockerで実行していましたが、データベース、フロントエンド、WEB APIサーバーをそれぞれ、マニュアル実行に切り替えることができます。。
マニュアル起動への切り替えのために、mix-and-match.yml
が提供されています。
データベースのマニュアル実行
Couchbase Serverをマニュアル実行する場合は、travel-sample バケットのセットアップでバージョン7.0.0以降が必要になります。
また、「hotels-index」という名前の旅行サンプルバケットに全文検索インデックスを作成する必要があります。これは、次のコマンドで実行できます。(後述するように、自動作成を選択することもできます)
curl --fail -s -u <username>:<password> -X PUT \
http://<host>:8094/api/index/hotels-index \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d @fts-hotels-index.json
マニュアル実行中のCouchbase Serverを使用する場合、データベースに関する詳細を次のように記します。
CB_HOST=10.144.211.101 CB_USER=Administrator CB_PSWD=password docker-compose -f mix-and-match.yml up backend frontend
Dockerイメージは通常と同じチェックを実行し、hotels-index
が存在しない場合は作成します。
Web APIサーバーのマニュアル実行
Dockerイメージを使わずに、Javaアプリケーションを自分で実行して、必要とあれば変更を加えるなどして、Couchbase APIの機能を試してみることもできます。
実行には、以下の要件があります。
- Java 8以降(Java 11を推奨)
- Maven3以降
依存関係をインストールします。
mvn clean install
新しいCouchbase Serverイメージに対して初めて実行するときは、提供されている wait-for-couchbase.sh
をラッパーとして使用して、すべてのインデックスが確実に作成されるようにすることができます。
docker-compose -f mix-and-match.yml up db
export CB_HOST=localhost CB_USER=Administrator CB_PSWD=password
./wait-for-couchbase.sh echo "Couchbase is ready!"
mvn spring-boot:run -Dspring-boot.run.arguments="--storage.host=$CB_HOST storage.username=$CB_USER storage.password=$CB_PSWD"
既存のCouchbase Serverを実行して正しく構成している場合は、次のコマンドを実行できます。
mvn spring-boot:run -Dspring-boot.run.arguments="--storage.host=localhost storage.username=Administrator storage.password=password"
最後に、サンプルのフロントエンドVueアプリケーションが変更に対してどのように機能するかを確認したい場合は、次のコマンドで実行します。
docker-compose -f mix-and-match.yml up frontend
フロントエンドのマニュアル実行
Dockerを使用せずにフロントエンドコンポーネントを手動で実行するには、こちらのガイドに従ってください
https://github.com/couchbaselabs/try-cb-frontend-v2
参考情報
上記のリポジトリ中には、「Couchbase 4.0」という記述が見えますが、現在の内容は、Couchbase Server 7.0に基づいています。