LoginSignup
0
0

More than 1 year has passed since last update.

Couchbase, Spring, SwaggerによるRESTful Webサービス構築⓪ サンプルアプリケーション紹介

Last updated at Posted at 2021-09-08

 はじめに

本稿では、Couchbase Labsにより公開されているサンプルアプリケーションを紹介します。

サンプルアプリケーションの構成を下に図示します。アプリケーションを動かしてみるためには、Dockerが利用できることが必要になります。

image.png

クイックスタート

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

image.png

アプリケーションフロントエンド

http://localhost:8081にアクセスします。下の画面が表示されます。

image.png

二つのリンクが存在しますが、それぞれへ以下のような画面へ進みます。
URLを見るとわかりますが、tenant_agent_00tenant_agent_01という二つのテナントを模したものになっています。

image.png

image.png

ここでは、 CB Travelを選択して進みます。
初回利用時には、ユーザーが存在していないので、ユーザー名とパスワードを入力して、[Register]をクリックします。

以下のような画面が表示されます。

image.png

REST APIサービス

http://localhost:8080にアクセスします。下の画面が表示されます。

image.png

「Learn the API with Swagger, interactively」リンクを押下します(または、 http://localhost:8080/apidocsにアクセスします)。下の画面が表示されます。

image.png

アプリケーション概要

このアプリケーションは、ユーザーが空港と日付に基づいて飛行ルートを検索して選択できるフライトプランナーです。
また、ユーザーはキーワードを使用してホテルを検索できます。

image.png

データ・モデル

サンプルデータセットの詳細については、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に基づいています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0