Bibi's DevLog ๐ค๐
Path Variable๊ณผ Query Parameter (์คํ๋ง์ @RequestParam๊ณผ @PathVariable) ๋ณธ๋ฌธ
๐ฅ BE ๋ฐฑ์๋/Spring ์คํ๋ง
Path Variable๊ณผ Query Parameter (์คํ๋ง์ @RequestParam๊ณผ @PathVariable)
๋น๋น bibi 2021. 4. 30. 19:58๊ฐ๋จํ๊ฒ ์์ฝ ์ ๋ฆฌ๋ง ํ๋ค.
์ถ์ฒ
https://ryan-han.com/post/translated/pathvariable_queryparam/
์ฌ์ฉ๋ฐฐ๊ฒฝ
- http์์๋ ์์ฒญ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฅํด ์ฃผ์ง ์๋๋ค.
- ์ฐ๊ฒฐ ํด ๋๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ํ์์ด ์๋๋ผ, ํ์ํ ๋๋ง๋ค ์ฐ๊ฒฐํ๋ค.
๊ณตํต์
- ๋ฐ์ดํฐ ์ ๋ฌ์ ์ํด ์ฌ์ฉ๋๋ค.
- URL์ ํตํด ๊ฐ์ ์ ๋ฌํ๋ค.
Query Parameter ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์ (์คํ๋ง์ @RequestParam
)
/users?id=123
- ํ๋ผ๋ฏธํฐ์ ์ด๋ฆ๊ณผ ๊ฐ์ ํจ๊ป ์ ๋ฌํ๋ ๋ฐฉ์์ด๋ค
Best Practice : ์ ๋ ฌ / ํํฐ๋ง์ ํ ๋ ์ฌ์ฉํ๋ค.
@RequestParam
4๊ฐ์ง ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฐ์ง ์ ์๋ค
@RequestParam("id")
: URL์ ํ๋ผ๋ฏธํฐ ์คid
๋ผ๋ ์ด๋ฆ์ ๊ฐ์ ๊ฐ์ ธ์จ๋ค@GetMapping("read") public void getId(@RequestParam("no") int id) { //... }
Path Variable ๊ฒฝ๋ก ๋ณ์ (์คํ๋ง์ @PathVariable
)
/users/123
์ด๋ฆ์ฒ๋ผ ๊ฒฝ๋ก๋ฅผ ๋ณ์๋ก์ ์ฌ์ฉํ๋ค.
์ํ๋ ๊ธฐ๋ฅ์ ๋ง๊ฒ HTTP๋ฉ์๋๋ฅผ ๋ณ๊ฒฝํ๋ค.
REST API์์ ๊ฐ์ ํธ์ถํ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
Best Practice : ์ด๋ค ๋ฆฌ์์ค๋ฅผ ์๋ณํ ๋ ์ฌ์ฉํ๋ค.
@PathVariable()
URL์์ ๊ฐ ๊ตฌ๋ถ์์ ๋ค์ด์ค๋ ๊ฐ์ ์ฒ๋ฆฌํ๋ค
@PostMapping("delete/{id}") @ResponseBody public int getId(@PathVariable("id") int id) { return id; }
@RequestParam
๊ณผ @PathVariable
ํจ๊ป ์ฌ์ฉํ๊ธฐ
๋ ๋ค ํ์ํ๋ฉด ๋ ๋ค ์ฌ์ฉํ ์๋ ์๋ค.
@GetMapping("/user/{userIdx}/invoices")
public List<Invoice> listUsersInvoices(
@PathVariable("userIdx") int user,
@RequestParam(value = "date", required = false) Date dateOrNull
)
{
// ...
}
'๐ฅ BE ๋ฐฑ์๋ > Spring ์คํ๋ง' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring] @Query (0) | 2021.04.30 |
---|---|
[Spring] ResponseEntity, @RestController, @RequestBody, @ResponseBody (0) | 2021.04.30 |
[Spring Data JDBC] Spring Data JDBC๋? (0) | 2021.04.30 |
[SpringDataJDBC] Map์ผ๋ก 1:N ๊ด๊ณ ๋งตํํ๊ธฐ (0) | 2021.04.30 |
AWS EC2 (Ubuntu) ์๋ฒ์ ์คํ๋ง ์ฑ ๋ฐฐํฌ ๊ณผ์ ์ ๋ฆฌ (0) | 2021.04.30 |