Contents
Spring Boot REST API開発の基礎と準備
Spring Bootを用いたREST API構築は、Javaエンジニアにとって必須のスキルです。特に「Spring Boot REST API 作り方 実践例」を検索する読者にとっては、環境構築から具体的な実装までの一連の流れを理解することが重要です。本記事では、ステップバイステップでプロジェクト生成や基本的なCRUD処理の実装方法を解説します。
環境構築とプロジェクト生成手順
Spring Bootアプリケーション開発は、「Spring Initializr」を使用することで簡単にプロジェクトを作成できます。以下に具体的な手順を示します:
-
公式サイトへのアクセス
https://start.spring.io/ へアクセスし、プロジェクト名やバージョンを入力します。 -
依存ライブラリの選択
- 必ず「Spring Web」を選択
-
「JPA」「MySQL Driver」など必要なライブラリも追加
-
ZIPファイルのダウンロード
プロジェクト構成が完了したら、「Generate Project」をクリックしてZIPファイルを取得します。
注意点: Javaバージョンは、プロジェクトの依存ライブラリと互換性があるか確認してください。また、Spring Boot 3系ではJakarta EE 9以降が必要です。
このように作成されたプロジェクトは、IDE(EclipseやIntelliJなど)で開発を始められます。
RestControllerによる基本CRUD実装
REST APIの核となるのは「RestController」です。HTTPメソッドごとにリソースに対する操作を行い、データの取得・作成・更新・削除(CRUD)が可能です。以下に各処理の概要と具体例を解説します。
HTTPメソッドごとの処理例(GET/POST/PUT/DELETE)
- GET:リソースの一覧や特定データを取得
- POST:新しいリソースを作成
- PUT:既存リソースを更新
- DELETE:リソースを削除
例:ユーザー情報を操作するRestController(実践例)
以下は、ユーザー情報に関するCRUD処理の実装例です。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
@RestController @RequestMapping("/users") public class UserController { @GetMapping("/{id}") public User getUser(@PathVariable Long id) { // IDからユーザー情報を取得 return new User(id, "山田太郎"); } @PostMapping public ResponseEntity<String> createUser(@RequestBody User user) { // ユーザー作成処理 return ResponseEntity.status(201).body("User created: " + user.getName()); } } |
@RestController:リクエストをJavaオブジェクトに変換し、JSON形式でレスポンスを返す@GetMapping/@PostMapping:HTTPメソッドごとに処理を分ける
JSONシリアライズ・デシリアライズの仕組みと応用
Spring Bootは「Jackson」ライブラリを使ってJSONデータの自動変換(シリアル化・デシリアル化)を実現します。これにより、JavaオブジェクトとJSONデータを簡単にやり取りできます。
データ転送時の自動変換メカニズム
| 項目 | 値 | 補足 |
|---|---|---|
| @RequestBody | HTTPリクエストボディをJavaオブジェクトに変換 | Userクラスにマッピング |
| ResponseEntity | レスポンスのステータス・ペイロードをカスタマイズ | 201 CREATEDなどのカスタム応答可能 |
UserクラスとJSONデータの関係性
以下は、リクエストボディに送信されたJSONが自動的に変換される例です。
|
1 2 3 4 5 6 7 |
public class User { private Long id; private String name; // getter・setterメソッド(必須) } |
注意:
Userクラスにはget/setメソッドが必要です。Jacksonはこれらを利用してフィールド値を取得/設定します。
MySQL連携とJPAの導入
データベースとの連携には「Spring Data JPA」を使用することで簡単に実現できます。以下に具体的な手順と注意点を紹介します。
データベース接続設定(application.properties)
|
1 2 3 4 5 |
spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root spring.datasource.password=<your_password> spring.jpa.hibernate.ddl-auto=update |
注意:
<your_password>を実際のMySQLパスワードに置き換えてください。開発環境でも安全な管理方法(例: 環境変数利用)を推奨します。
エンティティクラス設計(@Entity使用例)
|
1 2 3 4 5 6 7 8 9 10 |
@Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; // getter・setterメソッド } |
@Entity:Javaクラスをデータベーステーブルとマッピング@Id/@GeneratedValue:自動インクリメントでIDを生成
例外処理とカスタムレスポンス設計
API開発では、予期せぬエラーが発生する可能性があります。このような場合に統一されたレスポンスを返すには「@ControllerAdvice」を使用します。
グローバルエラーハンドリングの実装例
|
1 2 3 4 5 6 7 8 |
@ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(IllegalArgumentException.class) public ResponseEntity<String> handleIllegalArgumentException(IllegalArgumentException ex) { return ResponseEntity.status(400).body(ex.getMessage()); } } |
@ControllerAdvice:すべてのコントローラーで共通して例外を処理可能- レスポンス例:
{"error": "Invalid input", "code": 400}
APIテストとPostmanでの確認手順
開発が終わったら、APIの動作確認を行います。以下にPostmanでのテスト方法を紹介します。
テストケース作成手順(実践例)
-
リクエストURLの入力
http://localhost:8080/usersを入力し、HTTPメソッドを「GET」に設定します。 -
ヘッダーの設定(認証が必要な場合)
-
「Authorization」タブでトークンを入力(APIが認証仕様の場合)
-
リクエストボディの作成(POST/PUTの場合)
JSONデータを送信する際は、「Body」タブで「raw」を選択し、JSON形式で入力します。
例:{"id":1, "name":"山田太郎"} -
レスポンスの検証
- ステータスコードが200番台であれば成功
- エラーメッセージがある場合は原因を確認
Postmanでのテストは、API設計が正しいかを確認するための重要なステップです。
まとめ
本記事では、「Spring Boot REST API 作り方 実践例」を中心に、以下の内容を解説しました:
- Spring Initializrによるプロジェクト生成手順
- RestControllerでHTTPメソッドごとの処理実装
- JSONシリアライズ・デシリアライズの仕組みと応用
- MySQL連携とJPAの導入方法
- グローバルエラーハンドリングの設計
- PostmanでのAPIテスト手順
記事のサンプルコードを基にローカル環境で実際に動かしてみよう。動作確認後はDB連携やセキュリティ対策もぜひチャレンジしてください。