9.3. Spring Boot のリレーショナルデータベースバックエンドのサンプル
以下の例は、実稼働環境での実行を目的としていません。
制限: このサンプルアプリケーションは、Minishift または CDK で実行してください。また、手動のワークフローを使用して、この例を OpenShift Online Pro および OpenShift Container Platform にデプロイすることもできます。この例は、現在 OpenShift Online Starter では使用できません。
上達度レベルの例: Foundational
リレーショナルデータベースバックエンドのサンプル
リレーショナルデータベースバックエンドのサンプルは、REST API Level 0 アプリケーションを拡張して、単純な HTTP API を使用して PostgreSQL データベースで 作成、読み取り、更新、削除 (CRUD) 操作を実行する基本的な例を提供します。CRUD 操作は永続ストレージの 4 つの基本的な機能であり、データベースを処理する HTTP API の開発時に広く使用されます。
また、この例では、HTTP アプリケーションが OpenShift のデータベースを特定し、接続する機能も示しています。各ランタイムは、指定のケースで最も適した接続ソリューションを実装する方法を示しています。ランタイムは、API の JDBC、JPA などを使用、または ORM に直接アクセスするなどのオプションを選択できます。
アプリケーションのサンプルは HTTP API を公開し、HTTP で CRUD 操作を実行してデータを操作できるようにするエンドポイントを提供します。CRUD 操作は HTTP Verbs にマップされます。API は JSON フォーマットを使用して要求を受け取りし、ユーザーに応答を返します。また、ユーザーは、サンプルが提供するユーザーインターフェイスを使用して、アプリケーションを使用することもできます。具体的には、この例では以下を可能にするアプリケーションを提供します。
-
ブラウザーでアプリケーション Web インターフェイスに移動します。これにより、
my_dataデータベースのデータで CRUD 操作を実行する簡単な Web サイトが公開されます。 -
api/fruitsエンドポイントで HTTPGET要求を実行します。 - データベース内のすべての fruits のリストが含まれる JSON 配列としてフォーマットされたレスポンスを受け取ります。
-
有効なアイテム ID を引数として渡しながら、
api/fruits/*エンドポイントで HTTPGET要求を実行します。 - 指定した ID を持つ fruit の名前が含まれる JSON 形式で応答を受け取ります。指定された ID に項目がない場合は、呼び出しにより HTTP エラー 404 が発生します。
-
api/fruitsエンドポイントで HTTPPOST要求を実行し、有効なname値を渡してデータベースの新規エントリーを作成します。 -
有効な ID と名前を引数として渡して、
api/fruits/*エンドポイントで HTTPPUT要求を実行します。これにより、要求に指定された名前に一致するように、指定の ID を持つ項目の名前が更新されます。 -
api/fruits/*エンドポイントで HTTPDELETE要求を実行し、有効な ID を引数として渡します。これにより、指定された ID の項目がデータベースから削除され、応答として HTTP コード204(No Content) を返します。無効な ID を渡すと、呼び出しにより HTTP エラー404が発生します。
この例には、アプリケーションがデータベースと完全に統合されていることを検証するために使用できる自動化された 統合テスト のセットも含まれています。
この例では、完全に成熟した RESTful モデル (レベル 3) を紹介していませんが、推奨される HTTP API プラクティスに従って、互換性のある HTTP 動詞とステータスを使用しています。
9.3.1. リレーショナルデータベースバックエンドの設計トレードオフ リンクのコピーリンクがクリップボードにコピーされました!
| 利点 | 悪い点 |
|---|---|
|
|