Spring Query String 바인딩은 HTTP 요청에서 전달되는 Query String을 자동으로 파싱하여, 해당하는 파라미터 객체에 매핑하는 기능입니다.
예를 들어, 아래와 같은 URL로 GET 요청을 보낸다고 가정해봅시다.
GET /api/search?keyword=apple&category=fruits HTTP/1.1
이 경우, Query String에 keyword와 category라는 파라미터가 전달되고 있습니다. Spring Query String 바인딩은 이러한 파라미터를 자동으로 매핑하여, 해당하는 파라미터 객체에 값을 설정합니다.
@GetMapping("/api/search")
public List<Product> searchProducts(ProductSearchCondition condition) {
// ...
}
위의 코드에서 ProductSearchCondition 객체는 Query String으로 전달된 keyword와 category 파라미터를 자동으로 매핑합니다. 이를 위해서는, ProductSearchCondition 객체에 매핑될 필드와 일치하는 이름의 파라미터가 Query String에 포함되어 있어야 합니다.
Spring Query String 바인딩은
GET
요청에서만 사용될 수 있으며, 파라미터 객체는 필수적으로 @RequestParam 어노테이션 없이도 자동으로 매핑됩니다. 이는 Spring의 기본 동작 방식이며, 파라미터 객체에 @RequestParam 어노테이션을 추가하여 직접 매핑할 수도 있습니다.
@PostMapping("/users")
public ResponseEntity<UserDto> createUser(@RequestBody UserCreateDto userCreateDto) {
User user = mapUserCreateDtoToUser(userCreateDto);
User savedUser = userRepository.save(user);
UserDto userDto = mapUserToUserDto(savedUser);
return ResponseEntity.status(HttpStatus.CREATED).body(userDto);
}