Spring Boot API連携

Spring Bootで特定のテーブルのデータ取得・追加・更新・削除を行うRest APIサービスを作成してみた

Spring Bootアプリケーションでは、@RestControllerアノテーションを利用することで、Rest APIサービスを作成することができる。

Rest APIサービスについては、以下のサイトを参照のこと。
https://qiita.com/masato44gm/items/dffb8281536ad321fb08

今回は、STS(Spring Tool Suite)を利用したSpring Bootアプリケーション上で、特定のテーブルのデータ取得・追加・更新・削除を行うRest APIサービスを作成してみたので、そのサンプルプログラムを共有する。

前提条件

STSをインストールし、以下の記事のLombokの設定が終わっているものとする。

STS(Spring Tool Suite)上でlombokを利用してみた今回は、STSを利用して、lombokを利用してみたので、その手順を共有する。STS上でlombokを利用できるようにするには、あらかじ...

また、Oracleデータベース上に、以下のUSER_DATAテーブルとデータが作成済であること。
前提条件

さらに、以下の記事のPostmanをインストール済であること。

POSTメソッドでリクエストされるAzure FunctionsのAPIをPostmanによって呼び出してみたAzure App Serviceを利用せずに、HTTPトリガーによって呼び出されるAzure Functionsの動作確認を行うには、...



ウズウズカレッジJavaコースはわかりやすい動画教材と充実した就業サポートで優良企業を目指せるプログラミングスクールだったJavaは、世界中で広く使われていて、現在の需要が高く将来性もある開発言語になります。 https://www.acrovision....

サンプルプログラムの作成

今回はSTS(Spring Tool Suite)上で、Spring Bootアプリケーションを作成するところから開始する。その手順は、以下の通り。

1) STSを起動し、「ファイル」の「新規」メニューから「Spring スターター・プロジェクト」を選択する。
サンプルプログラムの作成_1

2) プロジェクト名やグループ・パッケージ等を指定し、「次へ」ボタンを押下する。
サンプルプログラムの作成_2

3) 必要なライブラリを選択し、「完了」ボタンを押下する。今回は、DevTools・Lombok・Spring Data JPA・Oracle Driver・Spring Webが必要なので、これらを選択している。
サンプルプログラムの作成_3

4) プロジェクトが作成でき、以下のようなフォルダ構成になる。
サンプルプログラムの作成_4

5) 作成されたプロジェクトの、pom.xmlの内容は、以下の通り。

6) 作成されたプロジェクトの、Spring Bootのメインクラスの内容は、以下の通り。

7) 上記プロジェクトの内容に、以下の赤枠のソースコードを追加・変更する。
サンプルプログラムの作成_7

application.propertiesの内容は以下の通りで、Spring Bootアプリケーションを起動するポート番号と、Oracleデータベースへの接続先を定義している。

Oracleデータベース上のUSER_DATAテーブルにアクセスするエンティティ・リポジトリの内容は以下の通りで、JPAによってデータベースにアクセスしている。

RESTコントローラクラスの内容は以下の通りで、USER_DATAテーブルのデータ取得・追加・更新・削除を行うRest APIサービスを作成している。

これらのソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/java/tree/master/spring-boot-rest-api-crud/demoRestApi



サラリーマン型フリーランスSEという働き方でお金の不安を解消しよう先日、「サラリーマン型フリーランスSE」という働き方を紹介するYouTube動画を視聴しましたので、その内容をご紹介します。 「サ...

サンプルプログラムの実行結果

サンプルプログラムの実行結果は、以下の通り。

1) Spring Bootアプリケーションを起動し、「http://(ホスト名):(ポート番号)/users」にアクセスすると、以下のように、USER_DATAテーブルの全データが取得できることが確認できる。
サンプルプログラムの実行結果_1

2) Postmanを起動し、リクエストを「GET」、URLを「http://(ホスト名):(ポート番号)/users」として「Send」ボタンを押下すると、先ほどと同じように、USER_DATAテーブルの全データが取得できることが確認できる。
サンプルプログラムの実行結果_2_1

サンプルプログラムの実行結果_2_2

3) Postmanで、リクエストを「GET」、URLを「http://(ホスト名):(ポート番号)/users/1」として「Send」ボタンを押下すると、USER_DATAテーブルのid=1のデータが取得できることが確認できる。
サンプルプログラムの実行結果_3_1

サンプルプログラムの実行結果_3_2

4) Postmanで、リクエストを「GET」、URLを「http://(ホスト名):(ポート番号)/users/10」として「Send」ボタンを押下すると、USER_DATAテーブルのid=10のデータが存在しないため、NULL値が返却されることが確認できる。
サンプルプログラムの実行結果_4_1

サンプルプログラムの実行結果_4_2

5) Postmanで、リクエストを「GET」、URLを「http://(ホスト名):(ポート番号)/users/a」として「Send」ボタンを押下すると、aは数値でないため、HTTP 400( Bad Request)エラーが返却されることが確認できる。
サンプルプログラムの実行結果_5_1

サンプルプログラムの実行結果_5_2

6) Postmanで、リクエストを「POST」、URLを「http://(ホスト名):(ポート番号)/users」、リクエストボディに追加するデータをJSON形式で設定して「Send」ボタンを押下すると、追加したデータが返却される。
サンプルプログラムの実行結果_6_1

サンプルプログラムの実行結果_6_2

7) 6)で追加されたデータをAPIやOracleデータベースで確認した結果は以下の通りで、指定したデータが追加されていることが確認できる。
サンプルプログラムの実行結果_7_1

サンプルプログラムの実行結果_7_2

8) Postmanで、リクエストを「PUT」、URLを「http://(ホスト名):(ポート番号)/users/4」、リクエストボディに更新するデータをJSON形式で設定して「Send」ボタンを押下すると、更新したデータが返却される。
サンプルプログラムの実行結果_8_1

サンプルプログラムの実行結果_8_2

9) 8)で更新されたデータをRest APIやOracleデータベースで確認した結果は以下の通りで、指定したデータが更新されていることが確認できる。
サンプルプログラムの実行結果_9_1

サンプルプログラムの実行結果_9_2

10) Postmanで、リクエストを「DELETE」、URLを「http://(ホスト名):(ポート番号)/users/4」、リクエストボディに更新するデータをJSON形式で設定して「Send」ボタンを押下すると、何もレスポンスは返却されないが処理が正常終了する。
サンプルプログラムの実行結果_10_1

サンプルプログラムの実行結果_10_2

11) 10)で削除されたデータをRest APIやOracleデータベースで確認した結果は以下の通りで、指定したidのデータが削除されていることが確認できる。
サンプルプログラムの実行結果_11_1

サンプルプログラムの実行結果_11_2

要点まとめ

  • Spring Bootアプリケーションでは、@RestControllerアノテーションを利用することで、Rest APIサービスを作成することができる。
  • Rest APIサービスの実行確認には、Postmanを利用すると便利である。
  • Rest APIサービスの各メソッドに追加するアノテーションは、データ取得時は@GetMappingアノテーション、データ更新・追加時は@PostMappingアノテーション、データ削除時は@DeleteMappingアノテーションとなる。