본문 바로가기
개인 공부/TIL

TIL : @PathVariable vs @RequestParam (20)

by 희조당 2023. 1. 10.
728x90

🌞 Spring

Spring에서 URI로 전달되는 값을 받아오는 방법이 두 가지 존재한다.

id가 1인 게시글을 가져올 때 다음과 같이 표현할 수 있다.

GET http://xxx.xxx.xxx/api/post?id=1 // query parameter
GET http://xxx.xxx.xxx/api/post/1 // path variable

딱 보면 다른데 자세하게 어떤 차이가 있는지 알아보자!

🌀RequestParam

GET http://xxx.xxx.xxx/api/post?id=1

이렇게 URI에 쿼리가 들어가는 방식일 때 사용하는 어노테이션이다.

일반적으로 Http GET Method에서 많이 사용한다.

조금 더 자세하게 들어가면 다음 4가지 경우로 많이 사용한다.

1️⃣ Searching

@GetMapping("/search")
public List<SearchResult> search(@RequestParam String q) {
    // code to search for results with the specified query
}

2️⃣ Filtering

@GetMapping("/products")
public List<Product> getProducts(@RequestParam Integer price) {
    // code to filter products by price
}

3️⃣ Pagination

@GetMapping("/users")
public List<User> getUsers(@RequestParam Integer page) {
    // code to retrieve the correct page of users
}

4️⃣ Sorting

@GetMapping("/products")
public List<Product> getProducts(@RequestParam String sort) {
    // code to sort products by specified criteria
}

Get Method를 통해서 정리된 결과를 얻고 싶을 때 사용하면 된다는 말이다 😋😋

🌀PathVariable

GET http://xxx.xxx.xxx/api/post/1

이런 방식으로 REST API에서 주로 사용되는 방식이다.

일반적으로 Http GET, PUT, DELETE Method에서 많이 사용한다.

물론 POST Method에서 특정 자원을 가르키는 용도로 사용하기도 하지만 자주 사용되진 않는다. 😋😋

@GetMapping("/users/{id}")
public User getUser(@PathVariable Long id) {
    // code to fetch and return user with the specified id
}

 

둘 모두 같이 사용할 수도 있으니 작성한 API를 상황에 맞춰서 사용하도록 하자!


😋 지극히 개인적인 블로그지만 훈수와 조언은 제 성장에 도움이 됩니다 😋 

 

댓글