08. Request Mapping

URL ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋งคํ•‘ํ•  ๋•Œ ์“ฐ๋Š” ์Šคํ”„๋ง ๊ธฐ๋Šฅ๋“ค์„ ์•Œ์•„๋ณด์ž.

ย  ย  ๐Ÿ™‹๐Ÿปโ€โ™€๏ธ ย  ๋“ค์–ด๊ฐ€๊ธฐ ์ „์—, @Controller ์™€ @RestController ๋ž€?

ย  ย  ๐Ÿ’ก ์Šคํ”„๋ง์—์„œ๋Š” ํด๋ž˜์Šค ๋‹จ์œ„์— @Controller ์–ด๋…ธํ…Œ์ด์…˜์„ ๋ถ™์—ฌ๋‘๋ฉด ์ปจํŠธ๋กค๋Ÿฌ ์—ญํ• ์„ ํ•˜๋Š” ํด๋ž˜์Šค๋กœ ์ธ์‹ํ•œ๋‹ค !

์–ด๋…ธํ…Œ์ด์…˜์„ค๋ช…
@Controller๋ฉ”์„œ๋“œ์˜ ๋ฐ˜ํ™˜๊ฐ’์ด String์ด๋ฉด ๋ทฐ ๋„ค์ž„์œผ๋กœ ์ธ์‹ํ•œ๋‹ค.
@RestController๋ฐ˜ํ™˜ ๊ฐ’์œผ๋กœ ๋ทฐ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ์•„๋‹Œ, HTTP ๋ฉ”์‹œ์ง€ ๋ฐ”๋””์— ๋ฐ˜ํ™˜ ๊ฐ’์„ ๋ฐ”๋กœ ์ž…๋ ฅํ•œ๋‹ค.

1๏ธโƒฃ ย  HTTP ๋ฉ”์„œ๋“œ ๋งคํ•‘

์–ด๋…ธํ…Œ์ด์…˜์„ค๋ช…์ข…๋ฅ˜
@RequestMapping(value) ์— ๋“ค์–ด๊ฐ€๋Š” URL๊ฒฝ๋กœ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ๋งคํ•‘ํ•œ๋‹ค. HTTP ๋ฉ”์„œ๋“œ๋ฅผ ์ถ•์•ฝํ•œ ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์ง๊ด€์ ์ด๋‹ค.@GetMapping, @PostMapping, @PutMapping, @DeleteMapping, @PatchMapping
@PathVariableURL์— ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋„˜์–ด์˜ค๋Š” ๊ฐ’์„ ์ฝ์–ด๋“ค์ผ ์ˆ˜ ์žˆ๋‹ค. ๋ณ€์ˆ˜๋ช…๊ณผ ํŒŒ๋ผ๋ฏธํ„ฐ๋ช…์ด ๊ฐ™์œผ๋ฉด ()์•ˆ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ช…์„ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค.-

ย  ๐ŸŒฑ ย  @RequestMapping

@RestController
public class MappingController {

    @RequestMapping(value = "/hello-basic", method = RequestMethod.GET)
    public String helloBasic() {
        log.info("helloBasic");
        return "ok";
    }

}

@RestController
@RequestMapping("/mappings/users")
public class MappingClassController {

    @GetMapping
    public String users() {
        return "get users";
    }

    @PostMapping
    public String addUser() {
        return "post user";
    }

}

ย  ๐ŸŒฑ ย  @PathVariable

@RestController
public class MappingController {

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

    //๋‹ค์ค‘์‚ฌ์šฉ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.
    @GetMapping("/mapping/{userId}/orders/{orderId}")
    public String mappingPath(@PathVariable String userId, @PathVariable String orderId) {
        log.info("mappingPath userId = {}, orderId = {}", userId, orderId);
        return "ok";
    }

}