๐™ธ๐šƒ

REST API / REST๋ž€ / RESTful

ํ•ด๋ฒ„๋‹ˆ 2023. 8. 21. 23:30
๋ฐ˜์‘ํ˜•

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 ๋ฐ์ดํ„ฐ๋ฅผ ์›ํ•˜๋Š” ํƒ€์ž…์œผ๋กœ ๋ฐ”์ธ๋”ฉ

 

 

 

๋ฐ˜์‘ํ˜•