1. api ๋?
ํ ์ํํธ์จ์ด์์ ๋ค๋ฅธ ์ํํธ์จ์ด๋ก ์์ฒญ์ ๋ณด๋ด๊ฑฐ๋ ๋ฐ์ ์ ์๋ ์๋จ.
2. ์ฝ๋๋ถ์
(1) @ResponseBody์ ๋ํ ์ค๋ช
@GetMapping("hello-string")
@ResponseBody //์ปจํธ๋กค๋ฌ๊ฐ ๋ฐํ ๊ฐ์ http body๋ถ์ ์ง์ ๋ฃ์ด์ฃผ๊ฒ ๋ค.
public String helloString(@RequestParam("name") String name)
{
return "hello " + name;
/* para์ spring์ ๋ฃ์ผ๋ฉด hello spring์ด ๋ ๊ฒ์.
์ฌ๊ธฐ์ view์ด๋ฐ ๊ฑธ๋ก ๊ทธ์ ๋ง๋ template ์ฐพ์ ๊ฐ ๋ฃ๋ ๊ณผ์ ์์ด
๋ฐ์ดํฐ๊ฐ ๊ทธ๋๋ก ์น ๋ธ๋ผ์ฐ์ ์ ๋ค์ด๊ฐ.
๋ฐ์ดํฐ ์๋ณธ ๋ณด๊ธฐ๋ฅผ ํด๋ ์ฝ๋๊ฐ ์ ๋จ๊ณ ์ฐ๋ฆฌ๊ฐ ๋ฃ์ ์คํธ๋ง์ด ๊ทธ๋๋ก ๋ธ.
*/
}
***Http์ ๊ตฌ์กฐ***
http๋ header์ body๋ก ์ด๋ฃจ์ด์ ธ์๋ค.
header -> ์์ฒญ๊ณผ ์๋ต์ ๋ํ ๋ฉํ ์ ๋ณด,
body -> ์์ฒญํ ๋ ํจ๊ป ๋ณด๋ผ ๋ฐ์ดํฐ๊ฐ ๋ค์ด ์๋ ๋ถ๋ถ
@GetMapping("hello-api")
@ResponseBody
public Hello helloApi(@RequestParam("name") String name)
//์ฌ๊ธฐ์ Hello๋ ๊ฐ์ฒด ์ ์ธ์ผ๋ก ์ธํด ์๊ธด ์๋ก์ด ๋ฐ์ดํฐ ํ์
{
Hello hello = new Hello();
hello.setName(name);
return hello;
// ๊ฐ์ฒด ์์ฑ - ๊ฐ์ฒด์ setname ํจ์ ์ด์ฉ(para๋ก ๋ฐ์ ์ธ์๋ฅผ name์ value๋ก ๋ฃ์ด์ฃผ๋ ๊ฒ.)
// ๋ง๋ ๊ฐ์ฒด๋ฅผ ๋ฐํ
}
static class Hello
{
private String name;
public String getName() // name ์กฐํ ํ๋ ํจ์
{
return name;
}
public void setName(String name) //name์ ๊ฐ์ ๋ฃ๋ ํจ์
{
this.name = name;
}
3. ์๋ ์๋ฆฌ
1) ์น ๋ธ๋ผ์ฐ์ ์์ localhost:8080/hello-api๋ฅผ GET ์์ฒญํจ.
2) ๋ด์ฅ ์น ์๋ฒ tomcat์ด ์ด๋ฅผ ๋ฐ์๋ค์ฌ์ springboot๋ก ๋ค์ ๋ณด๋ด์ค.
3) ์คํ๋ง๋ถํธ๋ ํด๋น ๋ด์ฉ์ ์ฒ๋ฆฌํ ์ ์๋ ์ปจํธ๋กค๋ฌ๊ฐ ์๋ ์ง ํ์ธ. ->helloController๊ฐ ์ฒ๋ฆฌ ๊ฐ๋ฅํจ์ ํ์ธ
4) ResponseBody ์ด๋ ธํ ์ด์ ์ด ์์์ ๋ฐ๊ฒฌ
(if ResponseBody๊ฐ ์์๋ค๋ฉด? ์ปจํธ๋กค๋ฌ๋ ๋ฐํ ๊ฐ์ viewResolver์๊ฒ ๋๊ธฐ๊ณ ,
๋ฐํ ๊ฐ์ ๋ด์ ์ ์๋ ์ ์ ํ ํ ํ๋ฆฟ์ ์ฐพ์ ๋๋ ค๋ฌ๋ผ๊ณ ์์ฒญ)
(ResponseBody๊ฐ ์๋ค๋ฉด? ์ปจํธ๋กค๋ฌ๋ ๋ฐํ ๊ฐ์ ์ง์ http-body๋ถ๋ถ์ ๋ค์ ๋ณด๋ด๋ฒ๋ฆผ.)
5) ๋ฐํ ๊ฐ์ด ๋ฌธ์์๋ค๋ฉด ๊ทธ๋๋ก http๋ก ๋ณด๋ด๋ฉด ๋๋๋ฐ, ๋ฐํ ๊ฐ์ด ๊ฐ์ฒด์
๋ฐํ ๊ฐ์ด ๊ฐ์ฒด์ผ ๋ default๋ ์ด ๊ฐ์ฒด์ key ๊ฐ๊ณผ value๊ฐ์ JSON ํ์์ผ๋ก ์ ์ ํด์ http์ ๋ณด๋ด๋ ๊ฒ ์์น
์ฌ๊ธฐ์ ๋์ ๋๋ ๊ทธ๋ฆผ์ด JSONConverter(๋ฐํ ๊ฐ์ด ๊ฐ์ฒด์ด๋ฉด JSON์ผ๋ก ๋ฐ๊พธ์ด ๋ณด๋ด์ฃผ๋ ๋ ์)์
StringConverter(๋ฐํ ๊ฐ์ด ๋ฌธ์๋ฉด ๊ทธ๋๋ก ๋ด๋ณด๋ด๋ ๋ ์).
6) JSON์ผ๋ก ๋ฐ๊พผ ๋ด์ฉ์ ์น ๋ธ๋ผ์ฐ์ ์ ์๋ต์ผ๋ก ๋ณด๋ด์ค๋ค.
4. ์ธ์ด ๊ฑฐ ํ์ธ
(1) @ResponseBody์ ๋ป?
(2) ์๋ ์๋ฆฌ ๊ฐ์ฒด๋ฅผ ๋ฐํํ ๋์ ๋ฌธ์๋ฅผ ๋ฐํํ ๋ ๋๋ ์ ์ค๋ช