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年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。