Development knowledge/Web

[Web] RESTful API๋ž€?

yuri lee 2023. 4. 7. 08:39
๋ฐ˜์‘ํ˜•

Intro

์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” RESTful API์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 

 

RESTful API (REST API)

RESTful API๋ž€ Representational State Transfer(ํ‘œํ˜„ ์ƒํƒœ ์ „์ด) ์•„ํ‚คํ…์ณ๋ฅผ ๋”ฐ๋ฅด๋Š” API์ž…๋‹ˆ๋‹ค. REST๋Š” ์›น ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ •์˜ํ•˜๊ณ , ์ด๋ฅผ HTTP ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด CRUD(Create, Read, Update, Delete) ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๊ทœ์น™์ด๋‚˜ ์ œ์•ฝ ์กฐ๊ฑด์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. 

 

RESTful API ํŠน์ง•

  • HTTP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ํ†ต์‹ ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” URL์„ ํ†ตํ•ด ์„œ๋ฒ„์˜ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜๊ณ , HTTP ๋ฉ”์†Œ๋“œ(GET, POST, PUT, DELETE ๋“ฑ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ๋ฆฌ์†Œ์Šค๋ฅผ ์กฐ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ RESTful API๋Š” ํ”Œ๋žซํผ ๊ฐ„ ์ƒํ˜ธ ์šด์šฉ์„ฑ์ด ๋†’๊ณ , ์บ์‹ฑ, ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ ์šฉํ•˜์—ฌ ํ™•์žฅ์„ฑ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
  •  URI(Uniform Resource Identifier)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ํ‘œํ˜„ํ•˜๊ณ , HTTP ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ๋ฆฌ์†Œ์Šค๋ฅผ ์กฐ์ž‘ํ•ฉ๋‹ˆ๋‹ค. HTTP ๋ฉ”์†Œ๋“œ๋Š” GET(์กฐํšŒ), POST(์ƒ์„ฑ), PUT(์ˆ˜์ •), DELETE(์‚ญ์ œ) ๋“ฑ์ด ์žˆ์œผ๋ฉฐ, ์ด๋Ÿฌํ•œ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
  • JSON ๋˜๋Š” XML๊ณผ ๊ฐ™์€ ํฌ๋งท์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•˜๊ณ , OAuth์™€ ๊ฐ™์€ ์ธ์ฆ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ RESTful API๋Š” ํ˜„๋Œ€์ ์ธ ์›น ์„œ๋น„์Šค์™€ ๋ชจ๋ฐ”์ผ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์—์„œ ํ”ํ•˜๊ฒŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. 
๋ฐ˜์‘ํ˜•