반응형
  • 특정 타입의 데이터를 담고있는 요청만 처리하는 Handler (content-type 헤더로 필터링)

    // Json타입을 가지고 있는 요청만 처리
    @Controller
    public class SampleController {
    
        @GetMapping(
                value = "/hello",
                consumes = MediaType.APPLICATION_JSON,
        )
        @ResponseBody
        public String hello() {
            return "hello";
        }
    }
    • 매치되지 않는 경우에 415 (Unsupported Media Type) 뱉음.
  • 특정한 타입의 응답을 만드는 핸들러 (accept 헤더로 필터링)

    // Plain Text를 만들어내는 핸들러 
    @Controller
    public class SampleController {
    
        @GetMapping(
                value = "/hello",
                produces = MediaType.TEXT_PLAIN_VALUE
        )
        @ResponseBody
        public String hello() {
            return "hello";
        }
    }
    • 매치되지 않는 경우에 406 (Not Acceptable) 뱉음.
  • header

    // 특정한 헤더가 있는 요청 처리
    @RequestMapping(headers = "AUTHORIZATION")
    @RequestMapping(headers = HttpHeaders.AUTHORIZATION)
    
    // 특정한 헤더가 없는 요청 처리
    @RequestMapping(headers = "!" + HttpHeaders.AUTHORIZATION)
    
    // 특정 헤더에 value값도 있는 경우 처리
    @RequestMapping(headers = HttpHeaders.AUTHORIZATION + "=" + "hooong")
  • param

    // 특정 param이 있는 요청 처리
    @RequestMapping(params = "name")
    
    // 특정 param이 없는 요청 처리
    @RequestMapping(params = "!name")
    
    // 특정 키/값을 가지는 요청 처리
    @RequestMapping(params = "name=hooong")
반응형

BELATED ARTICLES

more