RESTful API

RESTfulํ•œ API๋ž€?

REST ํŠน์ง•

  • client-server ๊ตฌ์กฐ

    • ํด๋ผ์ด์–ธํŠธ๋Š” ์œ ์ €์™€ ๊ด€๋ จ๋œ ์ฒ˜๋ฆฌ๋ฅผ,

    • ์„œ๋ฒ„๋Š” REST API๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ

    • ๊ฐ๊ฐ์˜ ์—ญํ• ์ด ํ™•์‹คํ•˜๊ฒŒ ๊ตฌ๋ถ„๋˜๊ณ  ์ผ๊ด€๋œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋ถ„๋ฆฌ๋˜์–ด ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค

  • ๋ฌด์ƒํƒœ์„ฑ (stateless)

    • REST๋Š” HTTP์˜ ํŠน์„ฑ์„ ์ด์šฉํ•˜๊ธฐ ๋–„๋ฌธ์— ๋ฌด์ƒํƒœ์„ฑ์„ ๊ฐ–๋Š”๋‹ค

    • ์„œ๋ฒ„์—์„œ ์–ด๋–ค ์ž‘์—…์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ƒํƒœ ์ •๋ณด๋ฅผ ๊ธฐ์–ตํ•  ํ•„์š”๊ฐ€ ์—†๊ณ , ๋“ค์–ด์˜จ ์š”์ฒญ์— ๋Œ€ํ•ด ์ฒ˜๋ฆฌ๋งŒ ํ•ด์ฃผ๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌํ˜„์ด ์‰ฝ๊ณ  ๋‹จ์ˆœํ•ด์ง„๋‹ค

  • ์บ์‹œ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ (cacheable)

    • ๋Œ€๋Ÿ‰์˜ ์š”์ฒญ์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์บ์‹œ๊ฐ€ ์š”๊ตฌ๋œ๋‹ค

    • ์บ์‹œ ์‚ฌ์šฉ์„ ํ†ตํ•ด ์‘๋‹ต์‹œ๊ฐ„์ด ๋นจ๋ผ์ง€๊ณ  REST Server ํŠธ๋žœ์žญ์…˜์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ „์ฒด ์‘๋‹ต์‹œ๊ฐ„, ์„ฑ๋Šฅ, ์„œ๋ฒ„์˜ ์ž์› ์ด์šฉ๋ฅ ์„ ํ–ฅ์ƒ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค

  • ์œ ๋‹ˆํผ ์ธํ„ฐํŽ˜์ด์Šค (Uniform)

    • Http ํ‘œ์ค€์—๋งŒ ๋”ฐ๋ฅธ๋‹ค๋ฉด ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, URI๋กœ ์ง€์ •ํ•œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์กฐ์ž‘์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ์•„ํ‚คํ…์ณ

    • ์ฆ‰, ํŠน์ • ์–ธ์–ด๋‚˜ ๊ธฐ์ˆ ์— ์ข…์†๋˜์ง€ ์•Š๋Š”๋‹ค

ํ•ต์‹ฌ ๊ทœ์น™

  • URI๋Š” ์ •๋ณด์˜ ์ž์›์„ ํ‘œํ˜„ํ•ด์•ผ ํ•œ๋‹ค

  • ์ž์›์— ๋Œ€ํ•œ ํ–‰์œ„๋Š” HTTP Method (GET, POST, PUT, DELETE ๋“ฑ)์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค

RESTful API๋ž€?

RESTful์€ REST๋ฅผ REST ๋‹ต๊ฒŒ ์“ฐ๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ, ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ณต์‹์ ์œผ๋กœ ๋ฐœํ‘œํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค

  • ์ž์›์„ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค

    • URL ๋งŒ์œผ๋กœ ์–ด๋–ค ์ž์› ์„ ์ œ์–ดํ•˜๋ ค๊ณ  ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค

  • ํ–‰์œ„๋Š” ๋ช…์‹œ์ ์ด์–ด์•ผ ํ•œ๋‹ค

    • GET์„ ์ด์šฉํ•ด์„œ UPDATE์™€ DELETE๋ฅผ ํ•˜๋Š” ๊ฒƒ โ†’ X

Last updated

Was this helpful?