김영한님 스프링 강의 정리/입문편
07. API 방식 처리 (@ResponseBody)
코등
2020. 12. 26. 14:46
@ResponseBody 를 통해 API 방식으로 response처리를 할 수 있다.
@GetMapping("hello-string")
@ResponseBody // html의 <body>가 아니라 HTTP의 body에 return값을 직접 넣겠다는 의미
// html 태그를 통해 전달하는 것이 아니라 문자열만 그대로 보내는 것
public String helloString(@RequestParam("name") String name) {
return "hello " + name;
}
@GetMapping("hello-api")
@ResponseBody // 이렇게 객체를 넘기게 되면 JSON 형식으로 화면에 띄워준다
public Hello helloApi(@RequestParam("name") String name) {
Hello hello = new Hello();
hello.setName(name);
return hello;
}
static class Hello {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
String을 그대로 띄워주는 방식은 거의 사용하지 않는다.
대부분이 객체를 전달하는 방식으로 사용된다.
@GetMapping에 의해 helloApi()가 호출되고 @ResponseBody에 의해 helloApi()의 return값을 그대로 HTTP body에 띄워준다.
이떄 return값에 따라 각각 다른 Converter가 작동한다.
객체가 return되면 MappingJackson2HttpMessageConverter가 작동하는 것으로 기본 등록되어있다.
(Jackson : 객체 -> JSON으로 변환해주는 라이브러리)