REST API / REST๋ / RESTful
REST๋?
Representational State Transfer
์์์ ์ด๋ฆ์ผ๋ก ๊ตฌ๋ถํ์ฌ ํด๋น ์์์ ์ํ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ชจ๋ ๊ฒ์ ์๋ฏธํ๋ค.
โ URI๋ฅผ ํตํด ์์์ ๋ช ์ํ๊ณ
โก HTTP Method(GET, PUT, POST, DELETE)๋ฅผ ํตํด
โข ํด๋น ์์(URI)์ ๋ํ CRUD operatoin์ ์ ์ฉํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
REST API
REST๊ธฐ๋ฐ์ผ๋ก ์๋น์ค API๋ฅผ ๊ตฌํํ๋ ๊ฒ.
์์์ ๋ํ ํ์๋ HTTP Method๋ก ํํํ๋ค.
์ค๊ณ ๊ธฐ๋ณธ ๊ท์น
1. URI๋ ๋์ฌ๋ณด๋ค๋ ๋ช ์ฌ๋ฅผ, ๋๋ฌธ์๋ณด๋ค๋ ์๋ฌธ์๋ฅผ ์ฌ์ฉํ์ฌ์ผ ํ๋ค.
2. ๋ง์ง๋ง์ ์ฌ๋์(/)๋ฅผ ํฌํจํ์ง ์๋๋ค.
3. ์ธ๋๋ฐ ๋์ ํ์ดํ์ ์ฌ์ฉํ๋ค.
4. ํ์ผ ํ์ฅ์๋ URI์ ํฌํจํ์ง ์๋๋ค.
5. ํ์๋ฅผ ํฌํจํ์ง ์๋๋ค. (get, put, post, delete๋ฑ)
Rest API๋ฅผ ์ ๊ณตํ๋ ์น ์๋น์ค๋ฅผ RESTfulํ๋ค๊ณ ํ ์ ์๋ค.
REST ๊ด๋ จ Annotation
@RestController : Controller๊ฐ REST ๋ฐฉ์์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๊ฒ์์ ๋ช ์
@ResponseBody : JSP ๊ฐ์ ๋ทฐ๋ก ์ ๋ฌ๋๋ ๊ฒ์ด ์๋๋ผ ๋ฐ์ดํฐ ์์ฒด ์ ๋ฌ
@PathVariable : URL ๊ฒฝ๋ก์ ์๋ ๊ฐ์ ํ๋ผ๋ฏธํฐ๋ก ์ถ์ถ
@CrossOrigin : Ajax์ ํฌ๋ก์ค ๋๋ฉ์ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ
@RequestBody : JSON ๋ฐ์ดํฐ๋ฅผ ์ํ๋ ํ์ ์ผ๋ก ๋ฐ์ธ๋ฉ