Spring Framework 에서 HTTP PUT 요청을 처리하기 위해 사용되는 어노테이션.
주로 리소스를 업데이트할 때 사용되며,@RequestMapping(method = RequestMethod.PUT)의 축약형
@RestController
@RequestMapping("/api")
public class MyController {
@PutMapping("/update/{id}")
public ResponseEntity<String> updateResource(@PathVariable Long id, @RequestBody MyResource updatedResource) {
// id에 해당하는 리소스를 updatedResource로 업데이트
// 업데이트 로직 구현
return ResponseEntity.ok("Resource with ID " + id + " has been updated.");
}
}
@RestController 는 이 클래스가 RESTful 웹 서비스의 컨트롤러임을 나타냄@RequestMapping("/api") 는 클래스 수준의 URL 패턴을 설정함@PutMapping("/update/{id}") 는 /api/update/{id} 로 들어오는 PUT 요청을 처리@PathVariable 은 URL 경로 변수인 id 를 메서드의 매개변수로 바인딩함@RequestBody 는 요청 본문을 자바 객체로 변환함클라이언트가 JSON 데이터를 통해 리소스를 업데이트하는 경우, @RequestBody 를 사용하여 JSON을 자바 객체로 변환함
@RestController
@RequestMapping("/api")
public class MyController {
@PutMapping("/updateResource")
public ResponseEntity<String> updateJsonResource(@RequestBody MyResource resource) {
// JSON 데이터 처리 및 리소스 업데이트
return ResponseEntity.ok("Resource updated: " + resource.getName());
}
}
@RequestBody 는 JSON 데이터를 자바 객체로 변환하여 처리함리소스의 특정 ID를 기반으로 업데이트를 수행할 때, 경로 변수를 사용할 수 있음
@RestController
@RequestMapping("/api")
public class MyController {
@PutMapping("/users/{userId}")
public ResponseEntity<String> updateUser(@PathVariable Long userId, @RequestBody User updatedUser) {
// userId에 해당하는 사용자를 updatedUser 정보로 업데이트
return ResponseEntity.ok("User with ID " + userId + " has been updated.")
}
}
@PathVariable 은 경로의 일부인 userId 를 매핑하여 사용자의 ID를 가져옴PUT 요청은 보통 리소스의 전체 업데이트에 사용됨. 만약 부분 업데이트가 필요하다면, @PatchMapping 을 사용하는 것이 더 적절하지만, PUT을 사용할 수도 있음
@PutMapping("/users/{userId}")
public ResponseEntity<String> updateUserDetails(@PathVariable Long userId, @RequestBody Map<String, Object> updates) {
// 부분 업데이트 로직 구현
return ResponseEntity.ok("User with ID " + userId + " has been partially updated.");
}
@RequestBody 에 Map<String, Object> 를 사용하여 특정 필드만 업데이트할 수 있음.