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年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
山崎講師2025年11月23日未経験でも迷わない!「成果が出る」新入社員研修の企画・講師スキル・評価まで徹底解説
山崎講師2025年11月23日新人クリエイターのための「生成AIと著作権」完全ガイド
山崎講師2025年11月23日【超入門】Hugging Faceで始めるAI開発!新人エンジニアが最初に触るべきTransformerの基礎と実践
山崎講師2025年11月23日新人エンジニア必見!才能よりも大切な「やり抜く力(グリット)」の鍛え方とは?