Spring Bootのルーティング完全ガイド!初心者でもわかるHTTPリクエストの処理方法
こんにちは。ゆうせいです。
Spring Bootは、JavaでWebアプリケーションを開発する際にとても便利なフレームワークです。特に、ルーティング(Routing)を簡単に設定できるのが魅力の一つです。
今回は、Spring Bootのルーティングの仕組みや使い方を詳しく解説します!
1. ルーティングとは?
ルーティングとは、クライアント(ブラウザやアプリなど)からのHTTPリクエストを、適切な処理に振り分ける仕組みのことです。
例えば、次のような動作を考えてみましょう。
- http://example.com/productsにアクセス → 商品一覧を表示
- http://example.com/products/1にアクセス → 商品ID「1」の詳細を表示
- http://example.com/cartにアクセス → ショッピングカートを表示
このように、URLごとに処理を分岐させるのがルーティングの役割です。
2. Spring Bootのルーティングの基本
Spring Bootでは、@RestController と @RequestMapping アノテーションを使ってルーティングを定義します。
基本的なルーティング
まずは、簡単なルーティングの例を見てみましょう。
@RestController
@RequestMapping("/hello")
public class HelloController {
    @GetMapping
    public String sayHello() {
        return "Hello, Spring Boot!";
    }
}
このコードの意味は次の通りです:
- @RestController:このクラスがREST APIのコントローラーであることを示す。
- @RequestMapping("/hello"):このクラス内のエンドポイントが- /helloから始まることを指定。
- @GetMapping:- GET /helloにリクエストが来たら、- "Hello, Spring Boot!"を返す。
この状態でSpring Bootアプリを起動し、ブラウザやPostmanで http://localhost:8080/hello にアクセスすると、「Hello, Spring Boot!」が表示されます。
3. HTTPメソッドごとのルーティング
Spring Bootでは、以下のように異なるHTTPメソッドに対応するアノテーションが用意されています。
| HTTPメソッド | アノテーション | 役割 | 
|---|---|---|
| GET | @GetMapping | データを取得 | 
| POST | @PostMapping | データを作成 | 
| PUT | @PutMapping | データを更新 | 
| DELETE | @DeleteMapping | データを削除 | 
例えば、以下のようなコードを書けば、各メソッドごとに適切な処理を作ることができます。
@RestController
@RequestMapping("/products")
public class ProductController {
    // 商品一覧を取得
    @GetMapping
    public String getAllProducts() {
        return "商品一覧";
    }
    // 商品を追加
    @PostMapping
    public String addProduct() {
        return "商品を追加しました";
    }
    // 商品を更新
    @PutMapping("/{id}")
    public String updateProduct(@PathVariable int id) {
        return "商品ID " + id + " を更新しました";
    }
    // 商品を削除
    @DeleteMapping("/{id}")
    public String deleteProduct(@PathVariable int id) {
        return "商品ID " + id + " を削除しました";
    }
}
4. URLパラメータの受け取り
ルーティングでは、URL内のパラメータを受け取ることができます。
パス変数(@PathVariable)
例えば、特定の商品IDを取得するエンドポイントを作りたい場合は、@PathVariable を使います。
@GetMapping("/{id}")
public String getProduct(@PathVariable int id) {
    return "商品ID: " + id;
}
動作例
- GET /products/1→- "商品ID: 1"
- GET /products/10→- "商品ID: 10"
クエリパラメータ(@RequestParam)
URLの末尾に ?key=value の形でパラメータを渡す場合は、@RequestParam を使います。
@GetMapping("/search")
public String searchProduct(@RequestParam String name) {
    return "検索結果: " + name;
}
動作例
- GET /products/search?name=コーヒー→- "検索結果: コーヒー"
- GET /products/search?name=スマホ→- "検索結果: スマホ"
5. JSONデータの受け取り
POSTリクエストでJSONデータを受け取る場合は、@RequestBody を使います。
@PostMapping
public String createProduct(@RequestBody Product product) {
    return "商品 " + product.getName() + " を追加しました";
}
リクエストの例
{
  "name": "ノートPC",
  "price": 100000
}
6. まとめ
Spring Bootのルーティングを学ぶことで、WebアプリやAPIの開発がスムーズに進みます。
今回は基本的なルーティングの仕組みを解説しましたが、実際の開発では次のようなことも学んでおくと良いでしょう。
- CORSの設定:異なるドメインからのアクセスを許可する方法
- 例外処理:エラーハンドリングの仕組み
- リクエストのバリデーション:送信データのチェック
次のステップとして、Spring Bootとデータベースを連携させたAPIの開発にも挑戦してみてください!
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール
- 代表取締役
- 
セイ・コンサルティング・グループ株式会社代表取締役。
 岐阜県出身。
 2000年創業、2004年会社設立。
 IT企業向け人材育成研修歴業界歴20年以上。
 すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
 この記事に間違い等ありましたらぜひお知らせください。