PUT API
웹 어플리케이션 서버를 통해 데이터 베이스 같은 저장소에 존재하는 리소스 값을 업데이트 하는 데 사용한다. 구현은 POST API와 거의 동일하다.
1. @RequestBody를 활용한 PUT 메서드 구현
PUT API는 POST 메서드와 마찬가지로 값을 HTTP Body에 담아 전달한다. 서버에서는 이 값을 받기 위해 @RequestBody를 사용한다.
@RestController
@RequestMapping("/api/v1/put-api")
public class PutController {
// http://localhost:8080/api/v1/put-api/member
@PutMapping("/member")
public String postMember(@RequestBody Map<String, Object> putData) {
StringBuilder sb = new StringBuilder();
putData.entrySet().forEach(map -> {
sb.append(map.getKey() + " : " + map.getValue() + "\n");
});
return sb.toString();
}
}
2. DTO 객체를 활용한 PUT 메서드 구현
member1은 String형으로 반환하는 메서드이고 member2는 DTO 객체 타입을 반환한다. 첫 번째는 toString 메서드로 인해 형식이 갖춰져 전달됐지만 HEADERS 항목의 content-type을 보면 'text/plain'으로 일반 문자열이 전달 됐음을 확인 할 수 있고, 두 번째는 HEADERS 영역의 Content-Type 항목이 application/json형식으로 전달됨을 알 수 있다. @RestController 어노테이션이 지정된 클래스는 @ResponseBody를 생략할 수 있는데 이 어노테이션은 자동으로 값을 JSON과 같은 형식으로 변환하여 전달하는 역할을 수행한다.
@RestController
@RequestMapping("/api/v1/put-api")
public class PutController {
// http://localhost:8080/api/v1/put-api/member1
@PutMapping("/member1")
public String postMemberDto(@RequestBody MemberDto memberDto) {
return memberDto.toString();
}
// http://localhost:8080/api/v1/put-api/member2
@PutMapping("/member2")
public MemberDto postMemberDto2(@RequestBody MemberDto memberDto) {
return memberDto;
}
}
3. ResponseEntity를 활용한 PUT 메서드 구현
스프링 프레임워크에는 HttpEntity라는 클래가 있는데 헤더와 바디로 구성된 HTTP 요청과 응답을 구성하는 역할을 수행한다.
@RestController
@RequestMapping("/api/v1/put-api")
public class PutController {
// http://localhost:8080/api/v1/put-api/member3
@PutMapping(value = "/member3")
public ResponseEntity<MemberDto> postMemberDto3(@RequestBody MemberDto memberDto) {
return ResponseEntity.status(HttpStatus.ACCEPTED).body(memberDto);
}
}
RequestEntity와 ResponseEntity는 HttpEntity를 상속받아 구현한 클래스이다. 그 중 ResponseEntity는 HttpEntity로부터 HttpHeaders와 Body를 가지고 자체적으로 HttpStatus를 구현한다. 이 클래스를 활용하면 응답 코드 변경은 물론 Header와 Body를 더욱 쉽게 구성할 수 있다.
참고 문헌: 스프링 부트 핵심 가이드(스프링 부트를 활용한 애플리케이션 개발 실무)
http://www.yes24.com/Product/Goods/110142898
스프링 부트 핵심 가이드 - YES24
입문자의 눈높이에 맞춰 차근차근 따라 하면서 배우는 스프링 부트 입문서!《스프링 부트 핵심 가이드》는 스프링 부트 기반의 애플리케이션을 개발할 때 필요한 기초적인 내용들을 소개하고,
www.yes24.com
'Back-end > Springboot' 카테고리의 다른 글
[SpringBoot] 스웨거(Swagger) (0) | 2023.05.04 |
---|---|
[SpringBoot] DELETE API 만들기 (0) | 2023.05.03 |
[SpringBoot] POST API 만들기 (0) | 2023.05.03 |
[SpringBoot] GET API 만들기 (0) | 2023.05.02 |
[SpringBoot] Hello World 출력하기 (0) | 2023.05.02 |