Spring MVC์์ ์ปจํธ๋กค๋ฌ ๋ฉ์๋์ ๋ฐํ ๊ฐ์
HTTP ์๋ต ๋ณธ๋ฌธ์ผ๋ก ์ง์ ์ ์กํ ๋ ์ฌ์ฉํ๋ ์ ๋
ธํ
์ด์
์
๋๋ค.
์ด ์ ๋
ธํ
์ด์
์ ์ฌ์ฉํ๋ฉด, ๋ฉ์๋๊ฐ ๋ฐํํ๋ ๊ฐ์ด
๋ทฐ ๋ฆฌ์กธ๋ฒ๋ฅผ ํตํด ์ฒ๋ฆฌ๋์ง ์๊ณ , ๊ทธ๋๋ก HTTP ์๋ต ๋ณธ๋ฌธ์ผ๋ก ์ ์ก๋ฉ๋๋ค.
2-1.HTTP ์๋ต ๋ณธ๋ฌธ ์ค์
๋ฉ์๋์ ๋ฐํ ๊ฐ์ HTTP ์๋ต ๋ณธ๋ฌธ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
GET ์์ฒญ์ ๋ํด sayHello ๋ฉ์๋๊ฐ ํธ์ถ๋๋ฉฐ, ์ด ๋ฉ์๋์ ๋ฐํ ๊ฐ์ธ "Hello, World!"๊ฐ HTTP ์๋ต ๋ณธ๋ฌธ์ผ๋ก ์ ์ก
@ RestController
public class MyController {
@ GetMapping ("/hello" )
@ ResponseBody
public String sayHello () {
return "Hello, World!" ;
}
}
2-2.JSON,XML ํฌ๋งท์ผ๋ก ์๋ต
๋ฐํ๋๋ ๊ฐ์ฒด๋ฅผ JSON, XML ๋ฑ์ผ๋ก ์ง๋ ฌํํ์ฌ ์๋ต ๋ณธ๋ฌธ์ผ๋ก ์ ์กํฉ๋๋ค.
/user ๊ฒฝ๋ก๋ก ๋ค์ด์ค๋ GET ์์ฒญ์ ๋ํด getUser ๋ฉ์๋๊ฐ ํธ์ถ๋๋ฉฐ,
์ด ๋ฉ์๋์ ๋ฐํ ๊ฐ์ธ User ๊ฐ์ฒด๊ฐ JSON ํ์์ผ๋ก ๋ณํ๋์ด HTTP ์๋ต ๋ณธ๋ฌธ์ผ๋ก ์ ์ก๋ฉ๋๋ค.
@ RestController
public class UserController {
@ GetMapping ("/user" )
@ ResponseBody
public User getUser () {
return new User ("John" , "Doe" );
}
}
2-3. RESTful ์๋น์ค ๊ตฌํ
RESTful ์น ์๋น์ค์์ ์์ฃผ ์ฌ์ฉ๋๋ฉฐ, REST API ์๋ต์ ์ฝ๊ฒ ๊ตฌํํ ์ ์์ต๋๋ค.
@RestController๋ @Controller์ @ResponseBody๋ฅผ ๊ฒฐํฉํ ์ ๋
ธํ
์ด์
์ผ๋ก,
ํด๋์ค ๋ด ๋ชจ๋ ๋ฉ์๋์ ์๋์ผ๋ก @ResponseBody๊ฐ ์ ์ฉ๋๋๋ก ํฉ๋๋ค.
@ RestController
public class ProductController {
@ GetMapping ("/product" )
public Product getProduct () {
return new Product ("Laptop" , 1500 );
}
}