Spring
[Spring] Path Variable과 Query Parameter
누구세연
2024. 7. 18. 23:15
Spring Framework는 RESTful 웹 서비스 개발에 매우 적합합니다.
URL 경로를 통해 클라이언트와 서버 간의 데이터를 교환할 수 있습니다.
그중에서도 자주 사용되는 Path Variable과 Query Parameter의 차이점과 사용 방법에 대해 정리해 보겠습니다.🙂
Path Variable
path variable은 URL 경로의 일부로 사용되어 특정 리소스를 식별하는데 사용됩니다.
예를 들어, 특정 사용자의 정보를 가져오거나 특정 상품의 상세 정보를 조회할때 유용합니다.
- URL 형식
/resource/{id} - 사용 예시 (사용자 id가 123인 사용자 정보 조회)
/users/123
@RestController
@RequestMapping("/users")
public class UserController {
@GetMapping("/{id}")
public ResponseEntity<User> getUserById(@PathVariable("id") Long id) {
// 사용자 조회 로직
User user = userService.findById(id);
return ResponseEntity.ok(user);
}
}
@PathVariale 어노테이션을 사용하여 URL 경로의 변수를 메소드 매개변수로 매핑합니다.
이 방법을 통해 경로의 일부로 전달된 변수를 손쉽게 추출하여 사용할 수 있습니다.
Query Parameter
Query Parameter는 URL끝에 ? 뒤에 키-값 쌍으로 전달되는 추가 데이터입니다.
주로 필터링, 정렬, 페이징 등의 용도로 사용됩니다.
- URL 형식
/resource?key=value - 사용 예시 (20살 사용자들을 내림차순으로 정렬하여 조회)
/users?age=20&sort=desc
@RestController
@RequestMapping("/users")
public class UserController {
@GetMapping
public ResponseEntity<List<User>> getUsers(
@RequestParam(value = "age", required = false) Integer age,
@RequestParam(value = "sort", defaultValue = "asc") String sort) {
// 사용자 필터링 및 정렬 로직
List<User> users = userService.findUsers(age, sort);
return ResponseEntity.ok(users);
}
}
@RequestParam 어노테이션을 사용하여 쿼리 매개변수를 메서드 매개변수로 매핑합니다.
required와 defaultValue 속성을 통해 필수 여부와 기본 값을 설정할 수 있습니다.
언제 사용하면 좋을까?
Path Variable 사용 시기
- 리소스를 식별할 때 (예: 특정 사용자, 특정 주문 등)
- RESTful API에서 리소스 경로를 명확히 할 때
Query Parameter 사용 시기
- 데이터 필터링 (예: 특정 연령대 사용자 조회)
- 데이터 정렬 (예: 내림차순, 오름차순 정렬)
- 페이징 (예: 특정 페이지의 데이터를 조회)
- 기타 추가적인 옵션을 제공할 때 (예: 검색 조건)
💡Path Variable은 리소스를 식별하는 데, Query Parameter는 필터링, 정렬, 페이징 등의 추가 정보를 전달하는 데 적합합니다.
Path variable과 QueyParameter는 각각의 용도에 맞게 사용하는 것이 중요합니다.