๐Ÿ“˜REST API

API๋ž€

API๋ž€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฆฌ์†Œ์Šค๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๋„๋ก ์„œ๋ฒ„์ธก์—์„œ ์ œ๊ณต๋œ ์ธํ„ฐํŽ˜์ด์Šค(interface)๋ฅผ ๋งํ•œ๋‹ค.

REST API

REST ๊ธฐ๋ฐ˜์œผ๋กœ ์„œ๋น„์Šค API๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ

REST API๋Š” HTTP ์š”์ฒญ์„ ํ†ตํ•ด ํ†ต์‹ ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ, ์ฝ๊ธฐ, ์—…๋ฐ์ดํŠธ ๋ฐ ์‚ญ์ œ ๊ธฐ๋Šฅ์„ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค. CRUD ์ž‘์—…์ด๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค. REST๋Š” ์š”์ฒญ๋œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ณ  ๋ฆฌ์†Œ์Šค๋กœ ์ˆ˜ํ–‰ํ•  ์ž‘์—…์„ ์„ค๋ช…ํ•˜๋Š” ๋„ค ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

POST โ€” ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

GET โ€” ๋ฆฌ์†Œ์Šค ๊ฐ€์ ธ์˜ค๊ธฐ

PUT โ€” ๋ฆฌ์†Œ์Šค ์—…๋ฐ์ดํŠธ

DELETE โ€” ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

๊ทœ์น™

1) URI๋Š” ์ •๋ณด์˜ ์ž์›์„ ํ‘œํ˜„ํ•ด์•ผ ํ•œ๋‹ค. (๋ฆฌ์†Œ์Šค๋ช…์€ ๋™์‚ฌ๋ณด๋‹ค๋Š” ๋ช…์‚ฌ๋ฅผ ์‚ฌ์šฉ) ๋ช…์‚ฌ๋Š” ๋ณต์ˆ˜ํ˜• GET /members/delete/1 (x) ์œ„์™€ ๊ฐ™์€ ๋ฐฉ์‹์€ REST๋ฅผ ์ œ๋Œ€๋กœ ์ ์šฉํ•˜์ง€ ์•Š์€ URI์ž…๋‹ˆ๋‹ค. URI๋Š” ์ž์›์„ ํ‘œํ˜„ํ•˜๋Š”๋ฐ ์ค‘์ ์„ ๋‘์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. delete์™€ ๊ฐ™์€ ํ–‰์œ„์— ๋Œ€ํ•œ ํ‘œํ˜„์ด ๋“ค์–ด๊ฐ€์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.

2) ์ž์›์— ๋Œ€ํ•œ ํ–‰์œ„๋Š” HTTP Method(GET, POST, PUT, DELETE ๋“ฑ)๋กœ ํ‘œํ˜„ ์œ„์˜ ์ž˜๋ชป ๋œ URI๋ฅผ HTTP Method๋ฅผ ํ†ตํ•ด ์ˆ˜์ •ํ•ด ๋ณด๋ฉด

DELETE /members/1 ์œผ๋กœ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ฒ ์Šต๋‹ˆ๋‹ค. ํšŒ์›์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ๋Š” GET, ํšŒ์› ์ถ”๊ฐ€ ์‹œ์˜ ํ–‰์œ„๋ฅผ ํ‘œํ˜„ํ•˜๊ณ ์ž ํ•  ๋•Œ๋Š” POST METHOD๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

ํšŒ์›์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” URI

GET /members/show/1     (x)
GET /members/1          (o) ํšŒ์›์„ ์ถ”๊ฐ€ํ•  ๋•Œ

GET /members/insert/2 (x)  - GET ๋ฉ”์„œ๋“œ๋Š” ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ์— ๋งž์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
POST /members/2       (o)

RESTFUL์ด๋ž€ REST์˜ ์›๋ฆฌ๋ฅผ ๋”ฐ๋ฅด๋Š” ์‹œ์Šคํ…œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ REST๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค ํ•˜์—ฌ ๋ชจ๋‘๊ฐ€ RESTful ํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. REST API์˜ ์„ค๊ณ„ ๊ทœ์น™์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ง€ํ‚จ ์‹œ์Šคํ…œ์„ RESTfulํ•˜๋‹ค ๋งํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ

๋ชจ๋“  CRUD ๊ธฐ๋Šฅ์„ POST๋กœ ์ฒ˜๋ฆฌ ํ•˜๋Š” API ํ˜น์€ URI ๊ทœ์น™์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ง€ํ‚ค์ง€ ์•Š์€ API๋Š” REST API์˜ ์„ค๊ณ„ ๊ทœ์น™์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ง€ํ‚ค์ง€ ๋ชปํ•œ ์‹œ์Šคํ…œ์€ REST API๋ฅผ ์‚ฌ์šฉํ•˜์˜€์ง€๋งŒ RESTful ํ•˜์ง€ ๋ชปํ•œ ์‹œ์Šคํ…œ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

ํƒœ๊ทธ:

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ: