๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
javascript/๐Ÿ“– study

[10์ฃผ์ฐจ ์Šคํ„ฐ๋””]44์žฅ-REST API

by HomieKim 2022. 4. 2.

REST API

  • REST(Representation State Transfer)๋Š” HTTP๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์˜ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์„ ๊ทœ์ •ํ•œ ์•„ํ‚คํ…์ฒ˜
  • REST API๋Š” REST๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„œ๋น„์Šค API๋ฅผ ๊ตฌํ˜„ํ•œ๊ฒƒ์„ ์˜๋ฏธ
  • ์ฆ‰, http๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ์ž์›์˜ ์ƒํƒœ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ฒƒ์„ REST๋ผ๊ณ  ํ•œ๋‹ค.
  • REST์˜ ๊ธฐ๋ณธ์›์น™์„ ์„ฑ์‹คํžˆ ์ง€ํ‚จ ์„œ๋น„์Šค ๋””์ž์ธ์„ RESTful ์ด๋ผ๊ณ  ํ‘œํ˜„.

REST API์˜ ๊ตฌ์„ฑ

  • REST API๋Š” 3๊ฐ€์ง€ ์š”์†Œ๋กœ ๊ตฌ์„ฑ
  • REST๋Š” ์ž์ฒด ํ‘œํ˜„ ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ ๋˜์–ด, REST API ๋งŒ์œผ๋กœ HTTP ์š”์ฒญ์˜ ๋‚ด์šฉ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.
๊ตฌ์„ฑ ์š”์†Œ ๋‚ด์šฉ ํ‘œํ˜„ ๋ฐฉ๋ฒ•
์ž์›(resource) ์ž์› URL(์—”๋“œํฌ์ธํŠธ)
ํ–‰์œ„(verb) ์ž์›์— ๋Œ€ํ•œ ํ–‰์œ„ HTTP ์š”์ฒญ ๋ฉ”์„œ๋“œ
ํ‘œํ˜„(representations) ์ž์›์— ๋Œ€ํ•œ ๊ตฌ์ฒด์  ํ–‰์œ„์˜ ๊ตฌ์ฒด์  ๋‚ด์šฉ ํŽ˜์ด๋กœ๋“œ

REST API ์„ค๊ณ„ ์›์น™

  • ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์›์น™ 2๊ฐ€์ง€
  1. URI๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ํ‘œํ˜„ํ•ด์•ผ ํ•œ๋‹ค.
  • ๋ฆฌ์†Œ์Šค๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ์ด๋ฆ„์€ ๋™์‚ฌ๋ณด๋‹ค๋Š” ๋ช…์‚ฌ๋ฅผ ์‚ฌ์šฉ ํ•œ๋‹ค.
# bad
GET /getTodos/1
GET /todos/show/1

# good
GET /todos/1
  1. ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ํ–‰์œ„๋Š” HTTP ์š”์ฒญ ๋ฉ”์„œ๋“œ๋กœ ํ‘œํ˜„ ํ•œ๋‹ค.
  • HTTP ์š”์ฒญ์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญ์˜ ์ข…๋ฅ˜์™€ ๋ชฉ์ ์„ ์•Œ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•
  • ์ฃผ๋กœ 5๊ฐ€์ง€ ์š”์ฒญ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ CRUD๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค.
  • ์ฆ‰, ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ํ–‰์œ„๋Š” ๋ฉ”์„œ๋“œ๋กœ ํ‘œํ˜„ํ•˜๋ฉฐ URI์— ํ‘œํ˜„ํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋Œ“๊ธ€