π λ°±μλ κ°λ°/SPRING
@PutMapping, @PatchMapping, @GetMapping, @PostMapping μ κ΄νμ¬...
Yeom.log
2025. 2. 15. 04:40
λ°μν
π μ£Όμ : "μ¨λΌμΈ μΌνλͺ° (E-commerce)"
- μνμ μ‘°ν (@GetMapping)
- μλ‘μ΄ μνμ μΆκ° (@PostMapping)
- μν μ 보λ₯Ό μμ (μ 체 λ³κ²½) (@PutMapping)
- μν μ 보λ₯Ό μμ (λΆλΆ λ³κ²½) (@PatchMapping)
β 1. @GetMapping (μ‘°ν)
π μ¬μ©μκ° νΉμ μν μ 보λ₯Ό μ‘°νν λ
@GetMapping("/products/{id}")
public ResponseEntity<ProductResponseDto> getProduct(@PathVariable Long id) {
ProductResponseDto product = productService.getProductById(id);
return ResponseEntity.ok(product);
}
β¨ μ€λͺ
- GET /products/1 κ°μ μμ²μ λ°μΌλ©΄
- idκ° 1μΈ μν μ 보λ₯Ό μ‘°νν΄μ μλ΅
β 2. @PostMapping (μλ‘μ΄ λ°μ΄ν° μΆκ°)
π μ¬μ©μκ° μ μνμ λ±λ‘ν λ
@PostMapping("/products")
public ResponseEntity<Void> createProduct(@RequestBody @Valid ProductRequestDto requestDto) {
productService.createProduct(requestDto);
return ResponseEntity.ok().build();
}
β¨ μ€λͺ
- POST /products μμ²μ λ°μΌλ©΄
- requestDto λ°μ΄ν°λ₯Ό κΈ°λ°μΌλ‘ μ μνμ DBμ μ μ₯
β 3. @PutMapping (μ 체 μμ )
π μν μ 보λ₯Ό μ 체 μμ ν λ
@PutMapping("/products/{id}")
public ResponseEntity<Void> updateProduct(
@PathVariable Long id,
@RequestBody @Valid ProductRequestDto requestDto) {
productService.updateProduct(id, requestDto);
return ResponseEntity.ok().build();
}
β¨ μ€λͺ
- PUT /products/1 μμ²μ λ°μΌλ©΄
- id=1μΈ μν μ 보λ₯Ό μ λΆ μμ
- μμ² μ λͺ¨λ λ°μ΄ν°λ₯Ό μ λ¬ν΄μΌ ν¨ (μΌλΆ λ°μ΄ν°λ§ μ λ¬νλ©΄ κΈ°μ‘΄ κ°μ΄ μ¬λΌμ§ μ μμ)
β 4. @PatchMapping (λΆλΆ μμ )
π μν μ 보λ₯Ό μΌλΆλ§ μμ ν λ
@PatchMapping("/products/{id}")
public ResponseEntity<Void> updateProductPrice(
@PathVariable Long id,
@RequestBody Map<String, Object> updates) {
productService.updateProductPartially(id, updates);
return ResponseEntity.ok().build();
}
β¨ μ€λͺ
- PATCH /products/1 μμ²μ λ°μΌλ©΄
- νΉμ νλ (price, stock λ±) λΆλΆμ μΌλ‘ μμ κ°λ₯
- μλ₯Ό λ€μ΄ { "price": 20000 }λ§ λ³΄λ΄λ©΄ κ°κ²©λ§ μμ λ¨
β μ 리
μ΄λ Έν μ΄μ HTTP λ©μλ μ¬μ© λͺ©μ νΉμ§
@GetMapping | GET | λ°μ΄ν° μ‘°ν | URLμ νλΌλ―Έν° ν¬ν¨ (/products/1) |
@PostMapping | POST | μλ‘μ΄ λ°μ΄ν° μΆκ° | μμ² λ³Έλ¬Έ (RequestBody)μ νμ© |
@PutMapping | PUT | λ°μ΄ν° μ 체 μμ | λͺ¨λ νλλ₯Ό ν¬ν¨νμ¬ μμ²ν΄μΌ ν¨ |
@PatchMapping | PATCH | λ°μ΄ν° μΌλΆ μμ | λ³κ²½ν νλλ§ μμ² κ°λ₯ |
λ°μν