
PUT은 웹서버를 통해 데이터베이스에 존재하는 리소스 값을 업데이트를 하는데 사용됩니다.
PUT 컨트롤러는 POST와 거의 동일하게 구현되며 리소스를 전달하기 위해 HTTP body를 활용해야합니다.
오늘은 DTO 객체와 @ResponseEntity를 이용하여 구현해보겠습니다.
ResponseEntity를 활용하면 상태코드와 결과메시지를 결과값등을 제어해서 보여줄 수 있습니다.
ResponseEntity란?
스프링 프레임워크에는 HttpEntity라는 Header와 Body로 구성된 HTTP 요청과 응답을 구성하는 역할을 하는 클래스가 있습니다.
RequestEntity, ResponseEntity는 HttpEntity를 상속받아 구현한 클래스이며,
HttpHeader와 Body를 가지고 HTTP 상태코드를 제어할 수 있습니다.
// MemberDto 클래스 import 해야함
import com.springboot.study02.dto.MemberDto;
@RestController
@RequestMapping("/api/put")
public class PutController {
@PutMapping(value = "/test") //http://localhost:8080/api/put/test
public ResponseEntity<MemberDto> putTest(@RequestBody MemberDto memberDto) {
return ResponseEntity
.status(HttpStatus.ACCEPTED) // 응답코드 202를 가지고 있음.
.body(memberDto);
}
}
// dto/MemberDto.java
@Getter
@Setter
@ToString
public class MemberDto {
private String name;
private int age;
private String birth;
}

Delete는 웹서버를 통해 데이터베이스에 존재하는 *리소스 값을 삭제할때 사용됩니다.
서버에서 클라이언트로부터 받은 리소스 값을 받아 데이터베이스에 있는 리소스를 조회하고 삭제하도록 합니다.
GET 메소드를 구현할때와 같이 URI에 값을 넣어 요청받는 형식으로 구현됩니다.
메소드의 매개변수와 값을 연결하기 위해 @PathVariable을 명시하며, @DeleteMapping 어노테이션과 @PathVariable에 변수의 이름을 동일하게 작성합니다
최종 URL에 매개변수를 설정하여 요청하면 아래와 같이 나옵니다.
@RestController
@RequestMapping("/api/delete")
public class DeleteController {
@DeleteMapping(value = "/{variable}")
public String DeleteVariable(@PathVariable String variable) {
return variable;
}
}
