목차
Spring Boot @RequestMapping
사용자 요청 받기 RequestMapping 어노테이션을 사용해 해당 URL로 들어오는 사용자 요청을 처리할 수 있다. 이때, method를 명시하지 않을 경우 GET, POST, PUT, PATCH, DELETE 모든 method를 사용해 접근이 가능하므로, 특정 method에서만 요청을 받고 싶을 경우 method를 명시해줘야 한다.
@RequestMapping(value = "/hello-basic") public String helloBasic () { log.info("helloBasic" ); return "ok" ; }
@RequestMapping(value = "/mapping-get-v1", method = RequestMethod.GET) public String mappingGetV1 () { log.info("helloBasic" ); return "ok" ; }
GetMapping 어노테이션 사용하기 @GetMapping(value = "/mapping-get-v2") public String mappingGetV2 () { log.info("helloBasic" ); return "ok" ; }
Path Variable 사용 @GetMapping("/mapping/{userId}") public String mappingPath (@PathVariable("userId") String data) { log.info("mappingPath userId={}" , data); return "ok" ; }
@GetMapping("/mapping/users/{userId}/orders/{orderId}") public String mappingPath (@PathVariable String userId, @PathVariable Long orderId) { log.info("mappingPath userId={}, orderId={}" , userId, orderId); return "ok" ; }
특정 미디어 타입 요청만 처리하고 싶을 경우 consumes 을 이용해
@PostMapping(value = "/mapping-consume", consumes = MediaType.APPLICATION_JSON_VALUE) public String mappingConsumes () { log.info("mappingConsumes" ); return "ok" ; }
특정 미디어 타입 응답을 만들고 싶을 경우 Accept의 Media Type과 produces가 일치해야 사용할 수 있다.
@PostMapping(value = "/mapping-produce", produces = MediaType.TEXT_HTML_VALUE) public String mappingProduces () { log.info("mappingProduces" ); return "ok" ; }
@RestController @Slf4j public class MappingController { @RequestMapping(value = "/hello-basic") public String helloBasic () { log.info("helloBasic" ); return "ok" ; } @RequestMapping(value = "/mapping-get-v1", method = RequestMethod.GET) public String mappingGetV1 () { log.info("helloBasic" ); return "ok" ; } @GetMapping(value = "/mapping-get-v2") public String mappingGetV2 () { log.info("helloBasic" ); return "ok" ; } @GetMapping("/mapping/{userId}") public String mappingPath (@PathVariable("userId") String data) { log.info("mappingPath userId={}" , data); return "ok" ; } @GetMapping("/mapping/users/{userId}/orders/{orderId}") public String mappingPath (@PathVariable String userId, @PathVariable Long orderId) { log.info("mappingPath userId={}, orderId={}" , userId, orderId); return "ok" ; } @GetMapping(value = "/mapping-param", params = "mode=debug") public String mappingParam () { log.info("mappingParam" ); return "ok" ; } @GetMapping(value = "/mapping-header", headers = "mode=debug") public String mappingHeader () { log.info("mappingHeader" ); return "ok" ; } @PostMapping(value = "/mapping-consume", consumes = MediaType.APPLICATION_JSON_VALUE) public String mappingConsumes () { log.info("mappingConsumes" ); return "ok" ; } @PostMapping(value = "/mapping-produce", produces = MediaType.TEXT_HTML_VALUE) public String mappingProduces () { log.info("mappingProduces" ); return "ok" ; } }