
REST API๋ Representational State Transfer(REST) ์ํคํ ์ฒ ์คํ์ผ์ ๋ฐ๋ฅด๋ API๋ก, ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ HTTP ํ๋กํ ์ฝ์ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ฐฉ์์ ๋๋ค.
ํด๋ผ์ด์ธํธ-์๋ฒ ๊ตฌ์กฐ
๋ฌด์ํ(Stateless)
์บ์ ๊ฐ๋ฅ(Cacheable)
๊ณ์ธตํ๋ ์์คํ (Layered System)
์ผ๊ด๋ ์ธํฐํ์ด์ค(Uniform Interface)
| HTTP ๋ฉ์๋ | ์ค๋ช |
|---|---|
| GET | ๋ฆฌ์์ค ์กฐํ (/users/1 โ ID๊ฐ 1์ธ ์ฌ์ฉ์ ์กฐํ) |
| POST | ๋ฆฌ์์ค ์์ฑ (/users โ ์๋ก์ด ์ฌ์ฉ์ ์์ฑ) |
| PUT | ๋ฆฌ์์ค ์ ์ฒด ์์ (/users/1 โ ID๊ฐ 1์ธ ์ฌ์ฉ์ ์ ์ฒด ์์ ) |
| PATCH | ๋ฆฌ์์ค ์ผ๋ถ ์์ (/users/1 โ ID๊ฐ 1์ธ ์ฌ์ฉ์ ์ผ๋ถ ์์ ) |
| DELETE | ๋ฆฌ์์ค ์ญ์ (/users/1 โ ID๊ฐ 1์ธ ์ฌ์ฉ์ ์ญ์ ) |
| Annotation | Description |
|---|---|
| @RestController | Controller๊ฐ REST ๋ฐฉ์์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๊ฒ์์ ๋ช ์ |
| @ResponseBody | JSP ๊ฐ์ ๋ทฐ๋ก ์ ๋ฌ๋๋ ๊ฒ์ด ์๋๋ผ ๋ฐ์ดํฐ ์์ฒด๋ฅผ ์ ๋ฌ |
| @PathVariable | URL ๊ฒฝ๋ก์ ์๋ ๊ฐ์ ํ๋ผ๋ฏธํฐ๋ก ์ถ์ถ |
| @CrossOrigin | Ajax์ ํฌ๋ก์ค ๋๋ฉ์ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ |
| @RequestBody | JSON ๋ฐ์ดํฐ๋ฅผ ์ํ๋ ํ์ ์ผ๋ก ๋ฐ์ธ๋ฉ |
| @RequestParam | ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ๋ก ๊ฐ์ ๋ฐ์ ๋ ์ฌ์ฉ |
| @RequestHeader | HTTP ์์ฒญ ํค๋ ๊ฐ์ ๊ฐ์ ธ์ฌ ๋ ์ฌ์ฉ |
| ResponseEntity | HTTP ์๋ต ์ฝ๋, ํค๋, ๋ฐ๋๋ฅผ ์ธ๋ฐํ๊ฒ ์ ์ดํ ๋ ์ฌ์ฉ |