본문 바로가기

Spring Boot

[Spring Boot] @RequestParam & @PathVariable 알아보기

🔍 @RequestParam 이란?

  • @RequestParam은 Spring MVC에서 사용되는 어노테이션으로, HTTP 요청에서 파라미터 값을 가져오는 데 사용된다.
  • 주로 URL 쿼리 파라미터(parameter)를 읽어오는 데에 사용된다.
  • 클라이언트가 입력한 데이터들이 URL을 통해서 전달된다.
  • @RequestParam()에 4가지의 파라미터를 가지고 있다.

파라미터 종류

1. defaultValue
- 값이 설정되지 않을 때 기본으로 설정할 값
2. name
- URL에서 바인딩할 요청 파라미터의 이름
3. value
- name의 별칭
4. required 
- 필수 값인지 설정하는 값

💡 URL 예시

GET /api/books? category=thriller&author=John+Doe

💻 코드 예시

@GetMapping("/api/books")
public ResponseEntity<List<Book>> getBooksByCategoryAndAuthor(
    @RequestParam("category") String category,
    @RequestParam("author") String author) {
... 
}

🔍 @PathVariable 이란?

  • @PathVariable은 Spring MVC에서 사용되는 애노테이션으로, URL 경로의 일부를 변수로 매핑하는 데 사용됩니다.
  • 어떤 요청이 든 간에 하나밖에 사용하지 못한다.
  • 주로 RESTful API에서 동적인 URL을 처리하기 위해 사용됩니다.

💡 URL 예시

POST /api/users/{id}/posts

💻 코드 예시

@PostMapping("/api/users/{id}/posts")
public ResponseEntity<String> createPost(@PathVariable Long id, @RequestBody PostRequest request) {
    // id를 사용하여 해당 사용자의 정보를 조회하고 포스트 생성 로직을 수행한다.
    // request 객체에는 포스트 생성에 필요한 데이터가 담겨있다.
...
}

📝 사용 용도

@RequestParam

  • URL 쿼리 파라미터로 데이터를 전달해야 할 때 사용됩니다.
  • 요청 URL에 파라미터를 명시적으로 표시하고자 할 때 사용됩니다.
  • 선택적인 파라미터 값을 처리하거나 기본값을 지정해야 할 때 사용됩니다.

@PathVariable

  • URL 경로에 데이터를 포함시켜야 할 때 사용됩니다.
  • 동적인 URL 경로를 처리하고 싶을 때 사용됩니다.
  • 경로의 특정 부분을 변수로 사용하여 데이터를 추출하고자 할 때 사용됩니다.