저번에 정적컨텐츠, mvc패턴 방시에 이어 이번에는 가장 자주 사용하는 방법인 api 방식이다.
@GetMapping("hello-string")
@ResponseBody
public String helloString(@RequestParam("name") String name) {
return "hello " + name;
}
@ResponseBody
를 사용하면 컨트롤러가 저번과 같이 뷰 리졸버(viewResolver)
를 사용하지 않는다. (저번에는 문자열을 리턴하면 뷰리졸버가 템플릿 폴더에서 html을 실행시킨다고 했었다.) 아래사진과 같이 그냥 문자를 반환해준다.
자 그러면 문자열이 아닌 객체를 반환하면 어떻게 될까?
@GetMapping("hello-api")
@ResponseBody
public Hello helloApi(@RequestParam("name") String name) {
Hello hello = new Hello();
hello.setName(name);
return hello;
}
이와같이 json형태로 반환하는걸 볼 수 있다.
@ResponseBody
는 이처럼 HttpMessageConverter
를 실행시켜 문자열로 그대로 내보내거나 json형태로 브라우저에 내보낸다.