- 스프링 FrameWork에서 제공하는 인터페이스
- Http요청 Body로 들어오는 것을 객체로 변환
- 객체를 Http응답 Body로 변환
https://developer.mozilla.org/ko/docs/Web/HTTP/Messages
@PostMapping("/user")
public @ResponseBody User create(@RequestBody User user) {
return user;
}
어떤 요청을 받았는지 혹은 어떤 요청을 보낼 것인지에 따라 사용하는 MessageConverter가 다르게 적용된다.
ex) Json - Json Body 라면 Json Converter가 적용
RestController 사용 시에는 @ResponseBody를 사용할 필요가 없다. - 이미 내장되어있기 때문에
@GetMapping("/hello")
public String hello() {
return "hello";
}
@GetMapping("/hello")
public @ResponseBody String hello() {
return "hello";
}
@ResponseBody가 생략되어있음
@Controller 애노테이션을 사용하면 바로 messageConverter를 사용하는 것이 아닌 ViewResolver를 사용하여 리턴 값에 해당하는
view를 찾으려고 시도하게 된다.
https://joont92.github.io/spring/MessageConverter/
test code 작성
전송 방식, 전송 파라미터를 설정해서 해당하는 결과가 제대로 출력되는 지를 확인
JSONObject userJson = new JSONObject();
userJson.put("username", "choi");
userJson.put("password", "123");
userJson.toString();
mockMvc.perform(post("/users/create")
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON)
.content(String.valueOf(userJson)))
.andExpect(status().isOk())
.andExpect(jsonPath("$.username",is(equalTo("choi"))))
.andExpect(jsonPath("$.password",is(equalTo("123"))))
;
https://docs.oracle.com/javaee/7/api/javax/ws/rs/core/MediaType.html
코드 참조
https://github.com/mike6321/Spring/tree/master/SpringBoot/SpringMvc
'Spring > Spring Boot' 카테고리의 다른 글
(SpringBoot) Spring Mvc(4) - 정적 리소스 지원 (0) | 2020.01.11 |
---|---|
(SpringBoot) Spring Mvc(3) - ViewResolver (0) | 2020.01.10 |
(SpringBoot) Spring Mvc(1) (0) | 2020.01.10 |
(SpringBoot) Spring-Boot-Devtools (0) | 2020.01.06 |
(SpringBoot) 테스트 (0) | 2020.01.05 |