Request λ§€νμ΄λ GetMappingμ μ°¨μ΄κ° λμΌ? μ λ€λ€ RequestMappingμ μ νΈνλκ±ΈκΉ?
@RequestMappingκ³Ό @GetMappingμ λ λ€ Spring Frameworkμμ HTTP μμ²μ μ²λ¦¬νκΈ° μν μ΄λ
Έν
μ΄μ
μ
λλ€. νμ§λ§ κ·Έλ€μ μ¬μ© λͺ©μ κ³Ό μ°¨μ΄μ μ΄ μ‘΄μ¬ν©λλ€. κΈ°λ³Έμ μΈ μ°¨μ΄μ κ³Ό μ¬λλ€μ΄ μ @RequestMappingμ μ νΈνλμ§ μμλ³΄κ² μ΅λλ€.
1) @RequestMapping
-
μν :
@RequestMappingμ HTTP μμ²μ μ²λ¦¬ν λ©μλ λλ ν΄λμ€μ λ§€ννλ κ°μ₯ μΌλ°μ μΈ μ΄λ Έν μ΄μ μ λλ€. HTTP λ©μλ(GET, POST, PUT, DELETE λ±)μ κ΄κ³μμ΄ μ¬λ¬ μ νμ μμ²μ λ§€νν μ μμ΅λλ€. -
μ μ°μ±:
@RequestMappingμ HTTP λ©μλλΏλ§ μλλΌ κ²½λ‘(path), ν€λ(headers), μμ² λ§€κ°λ³μ(params) λ± λ€μν 쑰건μ κΈ°λ°μΌλ‘ μμ²μ μ²λ¦¬ν μ μλ λ§€μ° μ μ°ν μ΄λ Έν μ΄μ μ λλ€.μ:
@RequestMapping(value = "/users", method = RequestMethod.GET) public List<User> getAllUsers() { return userService.getAllUsers(); }
2) @GetMapping
-
μν :
@GetMappingμ@RequestMappingμ νΉμ ν μ νμΌλ‘, GET μμ²λ§μ μ²λ¦¬νκΈ° μν μ΄λ Έν μ΄μ μ λλ€. μ΄κ²μ HTTP λ©μλκ° GETμΈ κ²½μ°μλ§ μ¬μ©λ©λλ€.@GetMappingμ λ κ°κ²°νκ³ μ§κ΄μ μΌλ‘ GET μμ²μ μ²λ¦¬ν λ λ§μ΄ μ¬μ©λ©λλ€.μ:
@GetMapping("/users") public List<User> getAllUsers() { return userService.getAllUsers(); }
-
λ€μν HTTP λ©μλ μ²λ¦¬:
@RequestMappingμ GET, POST, PUT, DELETE, PATCH λ± λ€μν HTTP λ©μλλ₯Ό μ§μνλ©°, νλμ μ΄λ Έν μ΄μ μμ μ²λ¦¬ν μ μκΈ° λλ¬Έμ λ μ μ°ν©λλ€. νΉν REST APIμμλ μ¬λ¬ HTTP λ©μλλ₯Ό μ¬μ©νλ κ²½μ°κ° λ§μ@RequestMappingμ΄ λ μ ν©ν μ μμ΅λλ€. -
ν΄λμ€ λ 벨 λ§€ν:
@RequestMappingμ ν΄λμ€ λ 벨μμλ μ¬μ©ν μ μμ΅λλ€. ν΄λμ€ λ 벨μ μ μ©νλ©΄ λͺ¨λ λ©μλμ λν΄ κ³΅ν΅λ κ²½λ‘λ₯Ό μ€μ ν μ μμ΄ μ½λλ₯Ό λ κ°κ²°νκ² μ μ§ν μ μμ΅λλ€.@RestController @RequestMapping("/users") public class UserController { @GetMapping public List<User> getAllUsers() { return userService.getAllUsers(); } @PostMapping public User createUser(@RequestBody User user) { return userService.createUser(user); } }
μ μ½λμμ ν΄λμ€ λ 벨μ
@RequestMapping("/users")λ λͺ¨λ λ©μλμ λν΄/usersκ²½λ‘λ₯Ό μ μ©νλ―λ‘, λ©μλλ³λ‘ κ²½λ‘λ₯Ό λ°λ‘ μ§μ νμ§ μμλ λ©λλ€. -
νμ νΈνμ±:
@RequestMappingμ μ€νλ§ 2.5λΆν° μ‘΄μ¬ν΄μ¨ μ΄λ Έν μ΄μ μΌλ‘, μ€λλ λ²μ μ μ€νλ§μμλ μ¬μ©ν μ μμ΅λλ€. λ°λ©΄,@GetMapping,@PostMappingλ±μ νΉμ λ©μλ μ μ© μ΄λ Έν μ΄μ μ μ€νλ§ 4.3 μ΄νμ μΆκ°λμμ΅λλ€. λ°λΌμ μ€λλ νλ‘μ νΈλ λ κ±°μ μ½λμμλ μ£Όλ‘@RequestMappingμ λ§μ΄ μ¬μ©νκ² λ©λλ€. -
λ€κΈ°λ₯μ±:
@RequestMappingμ λ©μλ μΈμλ μμ²μ λ€μν μμ±(ν€λ, λ§€κ°λ³μ, νλ‘λμ€/컨μ λ±)μ μ²λ¦¬ν μ μλ μ΅μ μ μ 곡ν©λλ€. μ΄ λλ¬Έμ λ€μν 쑰건μ λ°λΌ μμ²μ μ²λ¦¬νλ 볡μ‘ν APIμμλ@RequestMappingμ΄ λ μ νΈλ©λλ€.μλ₯Ό λ€μ΄, νΉμ ν€λκ° μλ μμ²λ§ μ²λ¦¬νλ κ²½μ°:
@RequestMapping(value = "/users", method = RequestMethod.GET, headers = "X-Custom-Header=foo") public List<User> getUsersWithCustomHeader() { return userService.getAllUsers(); }
νμ§λ§, @GetMapping, @PostMapping, @PutMapping λ±μ HTTP λ©μλ μ μ© μ΄λ
Έν
μ΄μ
λ€λ μ¬μ© μ μ₯μ μ΄ μμ΅λλ€.
- κ°λ
μ±: λ©μλ μ μ© μ΄λ
Έν
μ΄μ
μ μμ²μ HTTP λ©μλλ₯Ό μ§κ΄μ μΌλ‘ μ μ μμ΄, μ½λ κ°λ
μ±μ΄ λμμ§λλ€. μλ₯Ό λ€μ΄,
@GetMappingμ μ¬μ©νλ©΄ ν΄λΉ λ©μλκ° GET μμ²μ μ²λ¦¬νλ€λ κ²μ λ°λ‘ μ μ μμ΅λλ€. - κ°κ²°μ±: μ½λκ° κ°κ²°ν΄μ§λλ€.
@RequestMapping(method = RequestMethod.GET)λμ@GetMappingμ μ¬μ©νλ κ²μ΄ λ μ§§κ³ λͺ νν©λλ€.
@RequestMappingμ λ€μν HTTP λ©μλλ₯Ό μ²λ¦¬ν μ μκ³ ν΄λμ€ λ 벨μμ κ³΅ν΅ κ²½λ‘λ₯Ό μ€μ νλ λ° μ 리νλ©°, λ μ μ°νκ² μμ²μ μ²λ¦¬ν μ μμ΅λλ€. κ·Έλμ λ κ±°μ μ½λλ 볡μ‘ν APIμμλ μ¬μ ν λ§μ΄ μ¬μ©λ©λλ€.@GetMappingλ± HTTP λ©μλ μ μ© μ΄λ Έν μ΄μ μ κ°κ²°νκ³ μ§κ΄μ μ΄λ©°, κ°λ μ±μ λμ¬μ€λλ€. κ°λ¨ν APIλ₯Ό μμ±ν λλ μ΄λ¬ν λ©μλ μ μ© μ΄λ Έν μ΄μ μ μ¬μ©νλ κ²μ΄ λ μ’μ΅λλ€.
λ μ€ μ΄λ κ²μ μ¬μ©ν μ§ μ ννλ κ²μ νλ‘μ νΈμ μꡬμ¬νμ λ°λΌ λ¬λΌμ§λλ€.