티스토리 뷰

반응형

@PathVariable

URL로 들어오는 값을 얻을 때 사용합니다.

 

@GetMapping(value = ["/customer/{id}"])
fun getCustomer(@PathVariable id: Int) : ResponseEntity<Customer?> {
   
    ...
}

 

위와 같이 value 값으로 {id}를 얻어오고자 할 때 PathVariable을 사용합니다.

 

스프링이 컨트롤러를 자동 설정할 때 어노테이션을 인식해서 URL로 전달되는 값을 함수에 필요한 값으로 매핑하고 지정된 데이터 타입으로 변환합니다. 추가 설정 없이도 경로 변수를 함수 안으로 쉽게 매핑할 수 있는 강력한 기능입니다.

 

 

@RequestParam

꼭 명시해야 되는지와 기본 값을 설정할 수 있습니다.

 

@GetMapping(value = ["/customers"])
fun getCustomers(@RequestParam(required = false, defaultValue = "") nameFilter: String): List<Customer> =
   customers.filter {
       it.value.name.contains(nameFilter, true)
    }.map(Map.Entry<Int, Customer>::value).toList()

위는 필터를 해서 값을 가져오는 코드입니다.

 

http://localhost:8081/customers?nameFilter=리프

 

RequestParam의 required를 false로 하며 필수적인 값으로 설정하지 않았습니다. 즉, nameFilter를 적어도 되고 안 적어도 됩니다. 

그리고 defaultValue로 공백 문자열을 추가하였습니다. (defaultValue의 기본 값은 항상 String입니다.)

 

원하는 만큼 많은 매개 변수를 정의할 수 있고, 매개 변수는 URL과 구분 됩니다.

반응형
댓글