요청 매핑

SHByun·2023년 1월 24일

강의 chap6-3


요청 매핑

1. 요청 매핑

  • 어떤 요청이 왔을 때 어떤 컨트롤러가 호출이 돼야하는지 매핑하는 것이다.

2. MappingController

@RestController
public class MappingController {

    private Logger log = LoggerFactory.getLogger(getClass());

    @RequestMapping("/hello-basic")
    public String helloBasic() {
        log.info("helloBasic");
        return "ok";
    }

}
  • @RequestMapping("/hello-basic") : /hello-basic URL 호출이 오면 이 메서드가 실행되도록 매핑한다. 대부분의 속성을 배열[] 로 제공하므로 다중 설정이 가능하다. {"/hello-basic", "/hello-go"}

3. HTTP 메서드

  • @RequestMapping 에 method 속성으로 HTTP 메서드를 지정하지 않으면 HTTP 메서드와 무관하게 호출된다.
  • POST, GET, PUT 등 다 보내준다.
  • @GetMapping으로 특정 지어서 설정해주는 것이 좋다.

4. @PathVariable(경로 변수) 사용

  • url자체에 값이 있는 경우
/**
 * PathVariable 사용
 * 변수명이 같으면 생략 가능
 * @PathVariable("userId") String userId -> @PathVariable userId
 */
@GetMapping("/mapping/{userId}")
public String mappingPath(@PathVariable("userId") String data) {
    log.info("mappingPath userId={}", data);
    return "ok"
}
  • @PathVariable의 이름과 파라미터 이름이 같으면 생략할 수 있다.
  • @PathVariable을 다중으로 사용할 수 있다.(@PathVariable String userId, @PathVariable Long id)

5. 미디어 타입 조건 매핑

/**
 * Content-Type 헤더 기반 추가 매핑 Media Type
 * consumes="application/json"
 * consumes="!application/json"
 * consumes="application/*"
 * consumes="*\/*"
 * MediaType.APPLICATION_JSON_VALUE
 */
@PostMapping(value = "/mapping-consume", consumes = "application/json")
public String mappingConsumes() {
    log.info("mappingConsumes");
    return "ok";
}
  • Content-Type 헤더 정보를 기반으로 매핑한다.
  • consumes을 써야한다.

출처

인프런 강의 - 김영한
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard

profile
안녕하세요

0개의 댓글