URL 경로의 일부를 핸들러 메서드의 매개변수와 맵핑하기 위해 사용
해당하는 도메인의 특정 리소스를 식별하기 위해 사용됨
@GetMapping("/users/{id}")
public ResponseEntity<User> getUser(@PathVariable Long id) {
User user = userService.findById(id);
return ResponseEntity.ok(user);
}
/api/v1/users/1로 요청이 들어왔다면, {id}에 해당하는 숫자 1이 메서드 파라미터에 할당됨
일반적으로 URL 경로와 메서드 파라미터명은 일치시키는 경우가 많음 (자동 맵핑)
하지만 다르게 하고 싶다면 어노테이션에 명시 가능
@GetMapping("/users/{memberId}/posts/{articleId}")
public ResponseEntity<Post> getUserPost(
@PathVariable("memberId") Long userId,
@PathVariable("articleId") Long postId) {
}
이렇게 하면 memberId → userId로, articleId → postId로 명시적 맵핑됨