[๋„คํŠธ์›Œํฌ] Web API

Web API

REST API์˜ uniform interface๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด ์‰ฝ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๊ณ  ๋งŒ๋“  API๋ฅผ Web API๋ผ๊ณ  ํ•œ๋‹ค.

  • uniform interface
    1. ๋ฆฌ์†Œ์Šค๋Š” URI๋กœ ์‹๋ณ„๋˜์–ด์•ผ ํ•จ
    2. HTTP ํ‘œํ˜„์„ ์ด์šฉํ•ด ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑ, ์ˆ˜์ •, ์ถ”๊ฐ€ํ•ด์•ผ ํ•จ
    3. ๋ฉ”์‹œ์ง€๋Š” ์Šค์Šค๋กœ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ
    4. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒํƒœ๋Š” ํ•˜์ดํผ๋งํฌ๋ฅผ ํ†ตํ•ด ์ „์ด๋˜์–ด์•ผํ•จ
      • 3&4 ์กฐ๊ฑด์ด ๊นŒ๋‹ค๋กญ๋‹ค.

API

Application Programming Interface

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ๋•Œ ํ•„์š”ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ API๋ผ๊ณ  ํ•œ๋‹ค.
API๋Š” ์‚ฌ์šฉ๋ฐฉ๋ฒ•๋งŒ ์ž˜ ์ˆ™์ง€ํ•˜๋ฉด ๋‚ด๋ถ€์— ๊ตฌํ˜„๋œ ์ฝ”๋“œ๋ฅผ ๋ชฐ๋ผ๋„ ์ž˜ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
ํŒŒ์ผ ์ฒ˜๋ฆฌ, ํ™”์ƒ ์ฒ˜๋ฆฌ, ๋ฌธ์ž ์ œ์–ด ๋“ฑ๋“ฑ ์—ฌ๋Ÿฌ ์šฉ๋„๋กœ ์ œ๊ณต๋œ๋‹ค.

HTTP Method

์ž์›์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ํ‘œํ˜„์ด๋‹ค.

  • post : ์š”์ฒญํ•˜๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  • GET : ์›ํ•˜๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์กฐํšŒํ•œ๋‹ค.
  • PUT : ์›ํ•˜๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ˆ˜์ •ํ•œ๋‹ค.
  • DELETE : ์›ํ•˜๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•œ๋‹ค.

๊ทœ์น™

  • ์–ธ๋”๋ฐ”(_)๋Š” ์‚ฌ์šฉ x
  • ํ•˜์ดํ”ˆ(-)์€ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ
  • URI ๊ฒฝ๋กœ๋Š” ์†Œ๋ฌธ์ž๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
  • ํŒŒ์ผ ํ™•์žฅ์ž๋ฅผ ํฌํ•จํ•˜๋ฉด ์•ˆ ๋œ๋‹ค.
  • ์Šฌ๋ž˜์‹œ(/)๋กœ ๊ณ„์ธต์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
    • HTTP Method์˜ ํ•˜์œ„ ๊ณ„์ธต์œผ๋กœ ๋‹ค๋ฅธ HTTP Method๊ฐ€ ๋‚˜์™€์„œ๋Š” ์•ˆ๋œ๋‹ค.

์ƒํƒœ์ฝ”๋“œ

  • 20X : ์ •์ƒ์ ์ธ ์ˆ˜ํ–‰

    • 200 : ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰
    • 201 : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํŠน์ •ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑ ์š”์ฒญํ•˜๊ณ  ํ•ด๋‹น ๋ฆฌ์†Œ์Šค๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์ƒ์„ฑํ–ˆ์„ ๋•Œ
  • 40X : ํด๋ผ์ด์–ธํŠธ๋กœ ์ธํ•œ ์˜ค๋ฅ˜

    • 400 : ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ์ ์ ˆํ•˜์ง€ ์•Š์„ ๋•Œ
    • 401 : ์ธ์ฆ๋˜์ง€ ์•Š์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณดํ˜ธ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ์š”์ฒญํ–ˆ์„ ๋•Œ
    • 403 : ์„œ๋ฒ„๊ฐ€ ์‘๋‹ตํ•˜๊ณ  ์‹ถ์ง€ ์•Š์€ ๋ฆฌ์†Œ์Šค๋ฅผ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ–ˆ์„ ๋•Œ
    • 405 ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ–ˆ์„ ๊ฒฝ์šฐ
  • 301 & 500 : ์„œ๋ฒ„๋กœ ์ธํ•œ ์˜ค๋ฅ˜

    • 301 : ์š”์ฒญํ•œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ URI๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ
    • 500 : ์„œ๋ฒ„์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ