웹 애플리케이션을 통해 데이터베이스 등의 저장소에 리소스를 저장
할때 사용하는 API
GET에서는 URL경로나 파라미터에 변수를 넣어 요청을 보낸 반면 POST에서는 저장하고자 하는 리소스나 값을 Http Body에 담아서 전달
Body 영역에 JSON 형식
으로 값을 전달해야 함
@RestController
@RequestMapping("/api/v1/post-api")
public class PostController {
@PostMapping("/member")
public String postMember(@RequestBody Map<String,String> postData){
StringBuilder sb = new StringBuilder();
postData.entrySet().forEach(data->{
sb.append("key: " + data.getKey() + " value " + data.getValue() +"\n");
});
return sb.toString();
}
}
어떠한 형식의 값이 들어올지 몰라 Map 사용하였음
@RequestBody
는 Http의 Body 내용을 해당 어노테이션이 지정된 객체에 매핑하는 역할
JSON
: 자바스크립트의 객체 문법을 따르는 문자 기반 데이터 포맷
@RestController
@RequestMapping("/api/v1/post-api")
public class PostController {
@PostMapping("/member")
public String postMember(@RequestBody MemberDto dto){
return dto.toString();
}
}
PUT은 dto 사용 시 파라미터 앞에 아무것도 붙이지 않지만 POST인 경우에는 @RequestBody 붙여 줘야함