API
@ResponseBody ๋ฌธ์ ๋ฐํ
@Controller
public class HelloController {
@GetMapping("hello-string")
@ResponseBody
public String helloString(@RequestParam("name") String name) {
return "hello " + name;
}
}
-
@ResponseBody
๋ฅผ ์ฌ์ฉํ๋ฉด๋ทฐ ๋ฆฌ์กธ๋ฒ('viewResolver')
๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค- ๋์ HTTP์ BODY์ ๋ฌธ์ ๋ด์ฉ์ ์ง์ ๋ฐํํฉ๋๋ค(HTML BODY TAG๋ฅผ ๋งํ๋ ๊ฒ์ด ์๋๋๋ค.)
์คํ
http://localhost:8080/hello-string?name=spring
@ResponseBody ๊ฐ์ฒด ๋ฐํ
@Controller
public class HelloController {
@GetMapping("hello-api")
@ResponseBody
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;
}
}
}
-
@ResponseBody
๋ฅผ ์ฌ์ฉํ์, ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ฉด ๊ฐ์ฒด๊ฐ JSON์ผ๋ก ๋ณํ๋ฉ๋๋ค.
์คํ
- http://localhost:8080/hello-api?name=spring
@ResponseBody ์ฌ์ฉ ์๋ฆฌ
- ์น ๋ธ๋ผ์ฐ์ ์์
localhost:8080/hello-api
๋ก ์ ์์ ์๋ํฉ๋๋ค. - ํฐ์ผ ๋ด์ฅ ์๋ฒ์์ โ
hello-api
๊ฐ ์์ดโ ํ๊ณ ์คํ๋ง์ ๋์ง๋๋ค. - ์คํ๋ง์ โ
hello-api
๊ฐ ์๋ค?! ์ด? ๊ทผ๋ฐ@RespinseBody
์ด๋ ธํ ์ด์ ์ด ๋ถ์ด์๋ค!!โ ํ๊ณ ์ธ์ํฉ๋๋ค.- ์ด๋ฐ ์ด๋ ธํ ์ด์ ์ด ๋ถ์ด์์ง ์์๋ค๋ฉด viewResolver์๊ฒ ๋์ง๋๋ค. -> โ๋์๊ฒ ๋ง๋ ํ ํ๋ฆฟ์ ์ฐพ์ ๋๋ ค์คโ
-
@ResponsBody
๊ฐ ์๋ค๋ฉด HTTP ์๋ต์ ๊ทธ๋๋ก ๋๊ฒจ์ผ๊ฒ ๋ค ํ๊ณ ๋์ํฉ๋๋ค.- ์ฌ๊ธฐ์ ๋ฌธ์๊ฐ ์ค๋ฉด ๋ฐ๋ก ๋ฌธ์๋ฅผ ๋๋ ค์ค๋๋ค.
- ํ์ง๋ง ๊ฐ์ฒด๊ฐ ์ค๋ฉด ๊ธฐ๋ณธ ๋ํดํธ์ธ
JSON
๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค์ด์HTTP ์๋ต
์ ๋ฐํํฉ๋๋ค. -> ๊ธฐ๋ณธ ์ ์ฑ
-
@ResponseBody return: hello(name: spring)
์ ๊ฐ์ฒด๋ฅผ ๋๊ฒจ์ค๋๋ค. ๊ทธ๋ฌ๋ฉด โHttpMessageConverter
โ ๊ฐ ๋์ํฉ๋๋ค. - ๋ง์ฝ ๋ฐํํ๋ ์์ด๊ฐ ๋จ์ ๋ฌธ์์ผ ๊ฒฝ์ฐ โ
StringConverter
โ ๊ฐ ๋์ํฉ๋๋ค. - ๊ทธ๊ฒ ์๋๊ณ ๋ฐํํ๋ ์์ด๊ฐ ๊ฐ์ฒด์ผ ๊ฒฝ์ฐ โ
JsonConverter
โ ๊ฐ ๋์ํฉ๋๋ค. - ๊ฒฐ๊ตญ JSON ํ์์ผ๋ก ๋ณํํ ๊ฒ์ ์์ฒญํ ์น ๋ธ๋ผ์ฐ์ ์๊ฒ ๋ณด๋ด์ค๋๋ค.
์ ๋ฆฌ
-
@ResponseBody
๋ฅผ ์ฌ์ฉ- HTTP์ BODY์ ๋ฌธ์ ๋ด์ฉ์ ์ง์ ๋ฐํ
-
viewResolver
๋์ ์httpMessageConverter
๊ฐ ๋์ - ๊ธฐ๋ณธ ๋ฌธ์์ฒ๋ฆฌ:
StringHttpMessageConverter
- ๊ธฐ๋ณธ ๊ฐ์ฒด์ฒ๋ฆฌ:
MappingJackson2HttpMessageConverter
- byte ์ฒ๋ฆฌ ๋ฑ๋ฑ ๊ธฐํ ์ฌ๋ฌ HttpMessageConverter๊ฐ ๊ธฐ๋ณธ์ผ๋ก ๋ฑ๋ก๋์ด ์์
์ฐธ๊ณ : ํด๋ผ์ด์ธํธ HTTP Accept ํค๋์ ์๋ฒ์ ์ปจํธ๋กค๋ฌ ๋ฐํ ํ์ ์ ๋ณด ๋ค์ ์กฐํฉํด์
HttpMessageConverter
๊ฐ ์ ํ๋ฉ๋๋ค.