프로그래밍/Web

스프링 요청/응답

chance 2017. 2. 26. 05:18

 

컨트롤러 선언 : 스프링 4.0 부터 @RestController 어노테이션을 사용하면

RESTful 컨트롤러로 인식되어, 요청과 응답이 간소화된다.

@RestController @Controller, @ResponseBody 합쳐진 것으로 자동으로

모든 메쏘드에 @ResponseBody 포함되도록 한다.

뷰를 혼합해 사용하는 경우는 @Controller 선언후에

필요한 메쏘드에 @ResponseBody 선언해준다.

 

 

@RestController

@RequestMapping(value="/root)

@RequestMapping(value="/hello",method=RequestMethod.GET)

@RequestMapping(method=RequestMethod.POST)

@RequestParam(value="key",required=false,defaultValue="value")

 

요청 데이터

{"key1":"value1","key2":"value2"}

 

응답 데이터

{"result1":"value1","result2":"value2"}

 

요청 데이터에 대한 클래스

 public class RequestData {

 private String key1;

 private String key2;

.

.

}

 

응답 데이터에 대한 클래스

 public class ResultData {

 private String result1;

 private String result2;

.

.

}

 

@RequestMapping("/url",method=RequestMethod.POST)

 public ResultData getValue(@RequestBody RequestData data) {

 ResultData result = new ResultData();

.

.

 return result;

}

 

 

RequestMethod.GET 요청 : ex) http://host/url?key=value

@RequestMapping("/url",method=RequestMethod.GET)

 public ResultData getValue(

@RequestParam(value="key",required=false,defaultValue="defaultKey") String key) {

ResultData data = new ResultData();

.

return result;

}

 

 

URL 을 인자로 받기

RequestMethod.PUT : ex) http://host/myapp/12345/hello

@RequestMapping( value="/{app}/{userid}/{data}", method=RequestMethod.PUT

public void test (    @PathVariable("app") String app ,

@PathVariable("userid") Long userId,

@PathVariable("data") String data ) {



}