path parameter의 의미와 예제를 살펴보자!
스프링 MVC 컨트롤러에서 @PathVariable을 사용하는 간단한 예제를 다음과 같다.
@RestController
@RequestMapping("/api/users")
public class UserController {
// ...
@GetMapping("/{id}")
public User getUserById(@PathVariable("id") Long userId) {
// userId 값을 사용하여 사용자 정보를 조회
User user = userService.findById(userId);
return user;
}
// ...
}
위의 예제에서 @GetMapping("/{id}")
는 /api/users/{id} 형태의 URL에 대한 GET 요청을 처리하는 메서드를 정의한다. URL의 {id}
부분은 URI의 일부로서 동적으로 변할 수 있으며, 예를 들어 /api/users/1,
/api/users/2
등과 같이 변할 수 있다!
즉, /api/users url은 상수이고, /{id} 안에 들어가는 것은 변수이다.
@PathVariable("id") Long userId
는 {id}
로 표시된 URL의 일부를 userId
라는 메서드 파라미터로 바인딩한다. 이렇게 바인딩된 변수는 메서드 내에서 사용자 ID로 사용되어, 해당 ID에 해당하는 사용자 정보를 조회하는 데 사용된다.
import org.springframework.web.bind.annotation.PathVariable;
@RestController
public class HelloWorldController {
// Path Parameters
// /hello-world/path-variable/{name}
// /hello-world/path-variable/minjiki2
@GetMapping(path = "/hello-world/path-variable/{name}")
public HelloWorldBean helloWorldPathVariable(@PathVariable("name") String userName) {
return new HelloWorldBean(String.format("Hello World, %s", name));
}
}
실행결과,
이 시리즈는 Udemy 강의의 내용을 정리한 것입니다.
https://www.udemy.com/course/spring-boot-and-spring-framework-korean/