[SpringBoot] @RequestParam, @PathVariable ์ฐจ์ด์
๋ฐ์ดํฐ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ง๋ง
์ค๋์ @RequestParam๊ณผ @PathVariable์ ์ฐจ์ด์ ์ ๋ํด์ ์์๋ณด๋ ค ํ๋ค.
1๊ณผ ๊ฐ์ ๋ฐฉ์์ ์ฟผ๋ฆฌ ์คํธ๋ง์ด๋ผ ๋ถ๋ฅด๋ฉฐ Get ๋ฐฉ์์ ํต์ ์ ํ ๋ ์ฃผ๋ก ์ฐ์ธ๋ค.
2์ ๊ฐ์ ๋ฐฉ์์ RESTful ๋ฐฉ์์ด๋ฉฐ Rest ํต์ ํ ๋ ์ฐ์ธ๋ค.
๊ฐ์์ ์ฅ๋จ์ ์ด ์์ผ๋ฉฐ ๋ ๊ฐ์ ๋ฐฉ์์ Spring์์ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ๋ ๋ฐฉ์์ด ์กฐ๊ธ ๋ค๋ฅด๋ค.
@RequestParam
@RestController
public class TestController (){
@GetMapping("/")
public String test(@RequestParam("userId") String userId,
@RequestParam("memo") String memo){
//์๋์ ๊ฐ์ด ํด๋น ๋ณ์์ ํ๋ผ๋ฏธํฐ๊ฐ์ด ํ ๋น๋๋ค.
//userId = "test"
//memo = "ํ
์คํธ"
return "TEST ์ฑ๊ณต"
}
}
@PathVariable
@RestController
public class TestController (){
@GetMapping("/{userId}/{memo}")
public String test(@PathVariable("userId") String userId,
@PathVariable("memo") String memo){
//์๋์ ๊ฐ์ด ํด๋น ๋ณ์์ ํ๋ผ๋ฏธํฐ๊ฐ์ด ํ ๋น๋๋ค.
//userId = "test"
//memo = "ํ
์คํธ"
return "TEST ์ฑ๊ณต"
}
}
@PathVariable์์ ์ด๋ฉ์ผ๊ณผ ๊ฐ์ ๋ฐฉ์์ ๊ฐ์ด๋ ํน์๋ฌธ์๋ฅผ ๋ฐ์ ๋๋ ๊ฐ์ด ์๋ฆฌ๊ฑฐ๋ ๋น์ ์์ ์ผ๋ก ๋ค์ด์จ๋ค.
์ด๋๋ ์๋์ ๊ฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ์ ์์ ์ผ๋ก ๋ฐ์ ์ ์๋ค.
@RestController
public class TestController (){
@GetMapping("/{userId}/{memo:.+}")
public String test(@PathVariable("userId") String userId,
@PathVariable("memo") String memo){
//์๋์ ๊ฐ์ด ํด๋น ๋ณ์์ ํ๋ผ๋ฏธํฐ๊ฐ์ด ํ ๋น๋๋ค.
//userId = "test"
//memo = "ํ
์คํธ"
return "TEST ์ฑ๊ณต"
}
}
@PathVariable์ ์๋ฌด๋๋ RESTful ๋ฐฉ์์ ๋ง๊ฒ ์ข ๋ ์ง๊ด์ ์ด๋ค.
@RequestParam๋ null ๊ฐ ํ์ฉ์ด๋ ํค:๋ฐธ๋ฅ ๊ฐ์ผ๋ก ๋ณด๋ผ ์ ์๋ค๋ ์ ์ ๋๋ก ๋ค ์ ์๋ค.
๊ผญ ์ ๋ต์ ์์ผ๋ ์ํฉ์ ๋ง๊ฒ ์ฌ์ฉํ๋ฉด ์ข์ ๊ฑฐ ๊ฐ๋ค.