@PathVariable アノテーションの使い方
Web アプリケーション開発において、URL から特定の情報を取得するニーズは頻繁に見られます。 たとえば、ユーザー ID や商品コードを URL から抽出して該当する内容を表示するケースなどが考えられます。
このレクチャーでは、Spring Framework で提供されている @PathVariable
アノテーションを活用して、URL の一部を変数として受け取る方法を解説します。
実際のコード例を交えて、どのように Spring でこのアノテーションを利用するかを紹介します。
目次
@PathVariable が必要なケース
多くの Web アプリケーションでは、リソースの特定やユーザーごとのページ表示など、URL に含まれる情報をもとに処理を行う必要があります。 例えば、ユーザーごとのプロフィールページや、商品の詳細ページなどがこれに該当します。
具体例として、GET /users/1
のようなリクエストを考えます。
このリクエストのURLから、1
というユーザーIDを取得して、該当するユーザーのプロフィール情報を返す場合を想像してみてください。
このようなケースで、URL の一部を変数として取得して処理を行うために、Spring では @PathVariable
アノテーションを提供しています。
コードの具体例
@PathVariable
を使ったハンドラーメソッドの例を見てみましょう。
@Controller
public class UserController {
private final UserRepository userRepository;
@GetMapping("/users/{userId}")
public String getUser(@PathVariable("userId") String userId) {
// userId を使ってデータベースからユーザー情報を取得
userRepository.findById(userId);
// ..
}
}
このコードでは、/users/{userId}
という URL が指定された場合、{userId}
の部分が @PathVariable
によって getUser
メソッドの引数 userId
として渡される仕組みになっています。
@PathVariable
アノテーションには "userId"
という引数が指定され @PathVariable("userId")
という記述されている点に注目してください。
これによって @GetMapping
の引数の URL に含まれる {userId}
と、メソッドの引数である userId
変数が紐付けられます。
まとめ:@PathVariable を使って動的な値を取得しよう
@PathVariable
を使用することで、URL から動的な値を簡単に取得できます。
Spring での Web API や Web アプリケーションを開発においてこのアノテーションは頻出です。
@PathVariable
の引数には、URL に含まれる変数名を指定する点に注意してください。
いつでも使えるように、このアノテーションを覚えておきましょう。