`@RequestParam`๊ณผ `@PathVariable`์ Spring Framework์์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ด๋ ธํ ์ด์ ์ ๋๋ค.
๋ ๋ค URL์์ ํ๋ผ๋ฏธํฐ ๊ฐ์ ์ถ์ถํ๋๋ฐ ์ฌ์ฉ๋์ง๋ง ์ฌ์ฉ ๋ฐฉ์๊ณผ ๋ชฉ์ ์ด ์ฝ๊ฐ ๋ค๋ฆ ๋๋ค.
1. @RequestParam
`@RequestParam` ์ด๋ ธํ ์ด์ ์ ๋ฉ์๋์ ๋งค๊ฐ๋ณ์์ ์ฌ์ฉ๋๋ฉฐ, URL์ ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ๋ฅผ ์ถ์ถํ ๋ ์ฌ์ฉ
@GetMapping("/example")
public String exampleMethod(@RequestParam String parameterName) {
// ๋ฉ์๋ ๋ด์ฉ
}
- ์ฃผ๋ก ๊ฒ์ ํํฐ, ํ์ด์ง ๋ฒํธ, ์ ๋ ฌ ๊ธฐ์ค ๋ฑ๊ณผ ๊ฐ์ ์์ฒญ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ์ ๋ ์ฌ์ฉ
2. @PathVariable
`@PathVariable` ์ด๋ ธํ ์ด์ ์ URL์ ์ผ๋ถ๋ฅผ ๋ณ์๋ก ์ฌ์ฉํ ๋ ์ฌ์ฉ.
์ฆ, URL ๊ฒฝ๋ก์ ์๋ ์ผ๋ถ ๊ฐ์ ๋ฉ์๋์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ๋ฐ์ ์ ์์ต๋๋ค.
- **์์:**
@GetMapping("/example/{id}")
public String exampleMethod(@PathVariable Long id) {
// ๋ฉ์๋ ๋ด์ฉ
}
- ์ฃผ๋ก ๋ฆฌ์์ค์ ์๋ณ์(์: ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ ์ฝ๋ ID)๋ฅผ ๊ฒฝ๋ก์ ํฌํจํ์ฌ RESTfulํ API์์ ์ฌ์ฉ
ํผํฉ ์ฌ์ฉ
@GetMapping("/example")
public String exampleMethod(@RequestParam String parameterName, @PathVariable Long id) {
// ๋ฉ์๋ ๋ด์ฉ
}
์ด ๋ ์ด๋ ธํ ์ด์ ์ ์ ์ ํ ์กฐํฉํ์ฌ ๋ค์ํ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, `/example/1?parameterName=value`์ ๊ฐ์ ์์ฒญ์์ `@RequestParam`๊ณผ `@PathVariable`์ ํจ๊ป ์ฌ์ฉํ์ฌ
ํ๋ผ๋ฏธํฐ์ ๊ฒฝ๋ก ๋ณ์๋ฅผ ์ถ์ถํ ์ ์์ต๋๋ค.
์ฐจ์ด์ ์์ฝ
`@RequestParam`์ ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ๋ฅผ ์ถ์ถํ ๋ ์ฌ์ฉ๋๋ฉฐ, ๋ฉ์๋์ ๋งค๊ฐ๋ณ์๋ก ์ง์ ๋ฉ๋๋ค.
`@PathVariable`์ URL์ ์ผ๋ถ๋ฅผ ๋งค๊ฐ๋ณ์๋ก ์ฌ์ฉํ ๋ ์ฐ์ด๋ฉฐ, ํด๋น ๋ถ๋ถ์ ์ค๊ดํธ `{}`๋ฅผ ์ฌ์ฉํ์ฌ ํ์๋ฉ๋๋ค.
์ฌ์ฉ๊ธฐ์ค
`@RequestParam`๊ณผ `@PathVariable`์ ๊ตฌ๋ถํ์ฌ ์ฌ์ฉํ๋ ๊ธฐ์ค์ ์ฃผ๋ก 'ํด๋ผ์ด์ธํธ์์ ์ ๋ฌ๋๋ ๋ฐ์ดํฐ์ ์์น์ ํํ์ ๋ฐ๋ผ ๊ฒฐ์ '๋ฉ๋๋ค.
1. ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ ์ฌ์ฉ ์
- ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ URL์ ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌํ๋ ๊ฒฝ์ฐ, `@RequestParam`์ ์ฌ์ฉ
@GetMapping("/example")
public String exampleMethod(@RequestParam String parameterName) {
// ๋ฉ์๋ ๋ด์ฉ
}
- ํด๋ผ์ด์ธํธ ์์ฒญ: `/example?parameterName=value`
2. ๊ฒฝ๋ก ๋ณ์ ์ฌ์ฉ ์
- ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ URL์ ์ผ๋ถ๋ก ์ ๋ฌํ๋ ๊ฒฝ์ฐ, ์ฆ, RESTfulํ ๊ฒฝ๋ก์ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ, `@PathVariable`์ ์ฌ์ฉ
@GetMapping("/example/{id}")
public String exampleMethod(@PathVariable Long id) {
// ๋ฉ์๋ ๋ด์ฉ
}
- ํด๋ผ์ด์ธํธ ์์ฒญ: `/example/123`
3. ํผํฉ ์ฌ์ฉ ์
- ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ์ ๊ฒฝ๋ก ๋ณ์๋ฅผ ํจ๊ป ์ฌ์ฉํด์ผ ํ ์ ์์ต๋๋ค. ์ด๋๋ ๋ ์ด๋ ธํ ์ด์ ์ ํจ๊ป ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
@GetMapping("/example/{id}")
public String exampleMethod(@PathVariable Long id, @RequestParam String parameterName) {
// ๋ฉ์๋ ๋ด์ฉ
}
- ํด๋ผ์ด์ธํธ ์์ฒญ: `/example/123?parameterName=value`
4. **๊ธฐํ ๊ณ ๋ ค ์ฌํญ:**
- URL์ ๊ตฌ์กฐ, ํ๋ก์ ํธ์ URI ์ค๊ณ, RESTful API์ ๊ท์น ๋ฑ์ ๋ฐ๋ผ ์ ํํ ์ ์์ต๋๋ค.
- `@RequestParam`์ ์ ํ์ ์ธ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ๋ ์ ์ฉํ ์ ์์ต๋๋ค.
- `@PathVariable`์ ์ฃผ๋ก ๊ณ ์ ์๋ณ์๋ ๋ฆฌ์์ค ์๋ณ์ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก๋ RESTfulํ API์์ `@PathVariable`์ ์ฌ์ฉํ์ฌ ๋ฆฌ์์ค ์๋ณ์ ์ค์ ์ ๋๊ณ ,
๊ธฐํ ์์ฒญ ํ๋ผ๋ฏธํฐ๋ `@RequestParam`์ ํตํด ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์ผ๋ฐ์
์์
์๋๋ `@RequestParam`๊ณผ `@PathVariable`์ ์ฌ์ฉํ ๊ฐ๋จํ Spring MVC ์์ ์
๋๋ค.
1. @RequestParam ์ฌ์ฉ ์์
@RestController
@RequestMapping("/api")
public class ExampleController {
@GetMapping("/example")
public String exampleWithRequestParam(@RequestParam String parameterName) {
return "Received parameter: " + parameterName;
}
}
ํด๋ผ์ด์ธํธ์์ `/api/example?parameterName=value`๋ก ์์ฒญํ๋ฉด `parameterName`์ ๊ฐ์ ๋ฐ์์์ ์๋ต์ผ๋ก ๋ฐํํฉ๋๋ค.
2. @PathVariable ์ฌ์ฉ ์์
@RestController
@RequestMapping("/api")
public class ExampleController {
@GetMapping("/example/{id}")
public String exampleWithPathVariable(@PathVariable Long id) {
return "Received ID: " + id;
}
}
ํด๋ผ์ด์ธํธ์์ `/api/example/123`๋ก ์์ฒญํ๋ฉด `id`์ ๊ฐ์ ๋ฐ์์์ ์๋ต์ผ๋ก ๋ฐํํฉ๋๋ค.
3. ํผํฉ ์ฌ์ฉ ์์
@RestController
@RequestMapping("/api")
public class ExampleController {
@GetMapping("/example/{id}")
public String exampleWithMixedParams(@PathVariable Long id, @RequestParam String parameterName) {
return "Received ID: " + id + ", Received parameter: " + parameterName;
}
}
ํด๋ผ์ด์ธํธ์์ `/api/example/123?parameterName=value`๋ก ์์ฒญํ๋ฉด `id`์ `parameterName`์ ๊ฐ์ ๋ฐ์์์ ์๋ต์ผ๋ก ๋ฐํํฉ๋๋ค.
'TIL > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
java lombok annotation ์์๋ณด์ (0) | 2024.01.14 |
---|---|
java ์ค๋ฒ๋ก๋ฉ๊ณผ ์ค๋ฒ๋ผ์ด๋ฉ (0) | 2024.01.13 |
java ์๋ฃ๊ตฌ์กฐ (1) | 2024.01.04 |
java dip ์๋ฐ์ด ๋ฌด์จ ๋ง์ผ๊น (0) | 2023.12.26 |
java ๊ธฐ๋ณธํ ๋ฐ์ดํฐ ํ์ , ์ฐธ์กฐํ ๋ฐ์ดํฐ ํ์ (0) | 2023.12.15 |