요청 매핑

2024. 8. 26. 15:08Spring 백엔드 핵심 기술/springMVC

MappingController

package hello.springmvc.basic.requestmapping;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@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"}

HTTP Method

@RequestMapping 으로 HTTP메서드를 지정해주지 않으면 HTTP메서드와 무관하게 호출된다.

 

 

경로 변수(PathVariable) 사용

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

 

최근 HTTP API는 다음과 같이 리소스 경로에 식별자를 넣는 스타일을 선호한다.

  • /mapping/userA
  • /users/1
  • '@RequestMapping'은 URL경로를 템플릿화 할 수 있는데 '@PathVariable'을 사용하면 매칭 되는 부분을 편리하게 조회할 수 있다.
  • '@PathVariable'의 이름과 파라미터 이름이 같으면 생략할 수 있다.
 @GetMapping("/mapping/{userid}")
    public String mappingPath(@PathVariable String userid){
        log.info("mappingPath userId={}",userid);
        return "ok";
    }

 

특정 헤더 조건 매핑

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

 

미디어 타입 조건 매핑 - HTTP 요청 Content-Type, consume

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

 

'Spring 백엔드 핵심 기술 > springMVC' 카테고리의 다른 글

로깅 간단히 알아보기  (0) 2024.08.26