Spring
Spring @RequestBody 와 @ResponseBody
dev.mk
2019. 12. 1. 21:53
반응형
Spring에서 RESTful API 구현시 주로 사용되는 @ResquestBody, @ResponseBody 어노테이션의 개념
@RequestBody 어노테이션이란?
- HTTP 요청의 body 내용을 자바 객체로 매핑한다.
@ResponseBody 어노테이션이란?
- 자바 객체를 HTTP 요청의 body 내용으로 매핑한다.
Controller.java
@Controller
public class BBsController {
// HTTP 요청의 내용을 Bbs 객체에 매핑하기위해 @RequestBody 애너테이션을 설정한다.
@RequestMapping(value="/bbs/insert", method = RequestMethod.POST)
@ResponseBody
public ApiResult bbsInsert(@RequestBody BBsVo bbsVo) {
ApiResult result = bbsService.insert(bbsVo);
return result;
}
}
|
- @RestController로 컨트롤러로 생성시 @RestController는 리턴값에 자동으로
@ResponseBody를 붙게되어 HTTP 응답데이터(body)에 자바 객체가 매핑되어 전달되기 때문에 @ResponseBody이 생략가능
※ @Controller인 경우에는 @ResponseBody 한다.)
※ RestApi 설계시 @RequestMapping > @PutMapping로 사용가능하다.
BbsVo.java
@Data
public class BbsVo {
private String title;
private String contents;
private List<Item> items;
}
|
json 서브밋 부분
var params = {
title: "제목",
contents: "내용",
itmes: [
{id: "1", code: "11"},
{id: "2", code: "22"},
{id: "3", code: "33"}
]
};
$.ajax({
url: "http://localhost:8080/bbs/insert",
method: "post", //put 가능
type: "json",
data: params,
success: function(data) {
console.log(data);
}
});
|
※ RestApi 설계시 method: "post", > method: "put", 로 사용가능하다.
반응형