【CRUD全部紹介】Spring Boot+JPAでREST APIを実装する

▼この記事をSNSでシェアする▼

スポンサーリンク

スポンサーリンク

APIを叩くことはあっても自分で実装する機会ないなと思ったので、今回REST APIを自作してみました。

Spring BootのプロジェクトにREST API用のコントローラを実装し、PostmanからMysqlのテーブルのレコードのCRUDのAPIを実行してみます。

用意するもの

DBのテーブル

データを更新・追加・削除・取得するためのテーブルを用意します。

→Mysqlサーバーを起動し、sampledbスキーマにPersonテーブルを用意します

Person テーブルにはid (primary key)とnameとageの列を用意します。

Spring Bootプロジェクト

下記のクラスを使い、Rest APIを実装します。

  • Person.java:テーブルの値を扱うBean
  • PersonRepository.java:JpaRepositoryクラスを継承したリポジトリクラス
  • PersonService.java:PersonRepositoryのメソッドを使い、データ操作を行うサービス
  • PersonListControllerクラス:PersonServiceを呼び出し、APIのメソッドにマッピングするAPIコントローラ

用意するAPI

Create

  • URL:/api/persons
  • メソッド:POST
  • HTTPステータス:201

データの値をJSON形式で指定する

追加するデータはJSON形式をListに入れているので、単数でも複数でもデータを追加できる仕様にします。

Request Body(Sample)

Response Body(Sample)

Retrieve

二つ用意します。1件(id指定)での取得と全権取得のAPIです。

ID指定での取得

  • URL:/api/persons/{id}
  • メソッド:GET
  • HTTPステータス:200

Response Body(Sample)

存在しないIDを指定した場合このようにnullで返ってきます。

ステータスコード200というのが違和感しかないですが・・・

データ全件取得

  • URL:/api/persons/
  • メソッド:GET
  • HTTPステータス:200

Update

  • URL:/api/persons/{id}
  • メソッド:PUT
  • HTTPステータス:200

Request Body(Sample)

Response Body(Sample)

存在しないIDを指定すると、新たにデータが作成されます。

Delete

  • URL:/api/persons/{id}
  • メソッド:DELETE
  • HTTPステータス:204

対象のidのデータを削除します。

ResponseのBodyはありません。ステータスコードのみから結果を判断します。

存在しないIDを指定するとサーバー内部エラー500が返ります。

実装

Bean

Person.java

Repository

PersonRepository.java

Service

PersonService.java

Controller

PersonListController.java

Postmanで実行

実装ができたら、Spring Bootのプロジェクトを起動して、APIを叩いてステータスコードやテーブルをみて期待の結果を得られるか確認してみてください。

APIを叩くのにcurlコマンドなどをコンソールで実行しても良いですが、Postmanを使うのが色々と便利です。

Request Bodyがあるものはheaderに下記の情報を設定して「send」をクリックするとAPIwo叩けます

  • Content-Type:application/json
  • charset:UTF-8
  • method:上記参照
  • URL:上記参照

今回の実装ソース(GitHub)はこちら

スポンサーリンク


関連記事

▼この記事をSNSでシェアする▼

フォローする

メニュー・主な記事カテゴリ

おすすめ特集!




「ゆとり鳥日記」について
ITを中心に関心の赴くままに好きなように書いていく雑記ブログ!管理人が二人います。
◆フクロウ(ITコンサル)
◆santaka(SE)

詳しいプロフィール
お仕事の依頼・ご要望

ゆとり鳥日記をBTCで応援する