ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 특정 조건 매핑
    스프링/스프링 MVC 패턴 2023. 2. 14. 12:34

    저번에 @GetMapping, @PostMapping 등의 요청사항을 알아보았는데 이번에는 이런 요청들을 사용할 때 추가적으로 필요한 기능들을 공부할 것이다.

     

     

    @PathVaribale의 사용

    @GetMapping("/mapping/{userId}")
    public String mappingPath(@PathVariable("userId") String data) {
        log.info("mappingPath userId={}", data);
        return "ok";
    }

    위와 같이 url에 파라미터를 넣을 수 있다.

    userId라는 변수를 만들어서 url에 userId 변수 값이 넘어오면 로그에 출력해주는 방식이다.

    @PathVariable을 사용한 경로변수를 통해서 원하는 리소스 경로에 식별자를 넣어주는 방식을 요즘 많이 사용한다.

     

     

     

     

    PathVariable의 다중 사용

    @GetMapping("/mapping/users/{userId}/orders/{orderId}")
    public String mappingPath(@PathVariable String userId, @PathVariable Long orderId) {
        log.info("mappingPath userId={}, orderId={}", userId, orderId);
        return "ok";
    }

    위와 같이 변수를 2개 넣어주면 다중 사용이 가능해진다.

    만약 http://localhost:8080/mapping/users/userA/orders/100와 같은 url을 입력했으면 userId = userA, orderID = 100 이라는 로그가 출력 될 것이다. (웹 사이트에는 ok가 뜨고 콘솔 창에 로그로 출력)

     

     

     

    특정 파라미터 조건 매핑

    @GetMapping(value = "/mapping-param", params = "mode=debug")
    public String mappingParam() {
        log.info("mappingParam");
        return "ok";
    }

    value는 url정보이고, params는 파라미터 정보이다. url을 입력할 때 url 정보뿐만 아니라 파라미터 정보도 같이 입력해야한다. http://localhost:8080/mapping-param?mode=debug처럼 무조건 mode=debug를 넣어줘야지 된다.

    잘 사용하지는 않고 위와 같은 조건변수를 훨씬 많이 사용

     

     

     

    특정 헤더 조건 매핑

    @GetMapping(value = "/mapping-header", headers = "mode=debug")
    public String mappingHeader() {
        log.info("mappingHeader");
        return "ok";
    }

    url 파라미터가 아닌 특정 헤더가 있어야지 매핑되는 조건이다.

    포스트맨을 이용해서 헤더의 key값에 mode를, value값에 debug를 추가해서 실행했을 때의 결과이다.

    만약에 헤더를 추가하지 않는다면 실행되지 않는다.

     

     

     

    미디어 타입 조건 매핑

    @PostMapping(value = "/mapping-consume", consumes = "application/json")
    public String mappingConsumes() {
        log.info("mappingConsumes");
        return "ok";
    }

    Content-type이 무조건 json이어야지 실행되는 조건이다.

    json 타입이 아니라면 오류가 나서 실행되지 않는다.

    '스프링 > 스프링 MVC 패턴' 카테고리의 다른 글

    요청 파라미터 - @RequestParam, @ModelAttribute  (0) 2023.02.14
    API 요청 매핑 타입  (0) 2023.02.14
    로그 출력  (0) 2023.02.13
    스프링 MVC  (0) 2023.02.12
    view resolver  (0) 2023.02.12
Designed by Tistory.